服务器端 JavaScript 平台 Bun 的创建者和首席开发者 Jarred Sumner 创建了一个 Git 分支,开始将 Bun 从 Zig 重写为 Rust。此次重写使用了 Claude AI 助手,并为此专门编写了一份移植指南。Jarred 表示,这目前只是一个实验,并非正式移植,而且该项目很可能不会继续推进,重写的代码也不会被使用。
移植工作尚未完成,目前项目的重点在于评估移植版本的稳健性,看它能否通过主项目的测试套件,以及维护新代码的难度。最终目标是对 Bun 的 Zig 版本和 Rust 版本进行对比测试。
去年12月,Bun项目被Anthropic收购,因此Jarred有资源参与Claude尖端AI模型的移植工作。Bun平台被用于Claude Code和Claude Agent SDK,Anthropic致力于提升其质量和开发水平。Bun是Zig语言中最成功的项目之一,但Zig和Bun的开发者在开发过程中使用AI的问题上存在分歧。Zig项目严格禁止在准备pull request、issue和评论时使用大型语言模型(甚至禁止使用AI翻译非英语评论)。
Zig 的开发者解释说,引入这些限制的原因是他们在审查 AI 生成的 pull request 时遇到了不愉快的经历,这些 pull request 浪费了资源和时间(例如,标记无意义的更改、AI 的臆测以及臃肿的 10 行提交)。此外,Zig 项目将自身定位为以贡献者为中心,而非以贡献者为中心——接受 pull request 的主要目标不是添加新代码,而是帮助新贡献者进行开发。
Bun 的作者不同意 Zig 对 AI 的禁令,他认为 AI 代码最终只会成为 2025 年和 2026 年的怀旧遗迹,开源开发将会发展到禁止人类提交代码的地步。届时,人类将负责讨论问题、设定任务并确定优先级,而编写代码和向代码仓库提交更改则将成为 AI 的专属领域。此外,为了解决 Bun 的内存泄漏问题以及 Zig 对破坏兼容性的更改的不可接受的政策,作者还提到了尝试用 Rust 重写 Bun 的原因。
由于人工智能被禁用,Bun 的开发者被迫维护他们自己的 Zig 工具链分支。得益于人工智能,该分支通过并行化语义分析和代码生成,编译速度提升了四倍。然而,据一位 Zig 开发者透露,拒绝这些补丁的原因并非人工智能本身,而是因为并行化语义分析不仅会影响编译器,还会影响语言本身。要实现所提议的功能而不出现错误和不兼容的情况,需要对 Zig 语言进行修改。因此,Zig 开发者正在开发增量编译,他们认为增量编译可以将编译速度提升一个数量级,而不是并行化。
Bun JavaScript 平台旨在成为 Node.js 和 Deno 的高性能替代方案。该项目在开发时充分考虑了与 Node.js 服务器应用程序的兼容性,并支持大部分 Node.js API。该平台包含一套用于创建和运行 JavaScript 和 TypeScript 应用程序的工具,以及一个无需浏览器即可执行 JavaScript 应用程序的运行时环境、一个包管理器(兼容 NPM)、测试工具、一个独立的包构建器,以及一个用于嵌入 C 语言编写的处理程序的层。在性能方面,Bun 显著优于 Deno 和 Node.js(在基于 React 框架的测试中,Bun 的性能是 Deno 的两倍,是 Node.js 的近五倍)。JavaScript 执行由 JavaScriptCore JavaScript 引擎和 WebKit 组件(通过额外的补丁)提供支持。
来源: opennet.ru
