打开网易新闻 查看精彩图片

Anthropic旗下热门JavaScript运行时Bun的AI重写版本在引发对执行速度赞叹的同时,也因其背后的编码实践遭到社区批评。

上周,Bun创始人Jarred Sumner宣布,他利用并行运行的Claude智能体集群,仅用11天便将Bun从Zig语言移植至Rust语言。按API定价计算,此项工作成本约为16.5万美元。这一案例表明,以往被认为规模过大而难以实施的软件修订,如今借助AI已变得切实可行。

Sumner表示,鉴于Bun用户发现的漏洞日益增多,包括一起涉及近期Claude Code源代码泄露的事件,此次移植势在必行。

然而,Zig语言创始人Andrew Kelley拒绝让自己的项目为Bun的困境背锅,他将问题归咎于Sumner糟糕的编程实践。Kelley指出,转向Rust并非源于语言功能差异或AI技术本身,而是“两个项目价值观体系的背离”。

Bun的前世今生

Bun是一套包含运行时、包管理器、打包器和测试运行器的JavaScript套件。凭借与Node.js的良好兼容性及高速性能,它成为许多开发者青睐的一站式解决方案。

为确保高性能,Sumner选用Apple的低内存快速启动WebKit JavaScriptCore (JSC)引擎,而非Google标准的V8引擎;底层则采用新兴的Zig语言,以追求极致的高性能与低层控制力。

Anthropic于2025年12月收购Bun,并基于其构建核心状态机。在此之前,Sumner已深度依赖AI进行代码维护。名为RoboBun的Claude机器人曾是Bun仓库中提交合并PR最多的贡献者,主要负责修复漏洞和处理测试失败。

随着用户群扩张,代码隐患逐渐暴露。据NodeSource报道,Anthropic今年3月泄露的51.2万行代码,根源在于Bun打包器中的一个漏洞:即便在构建时被指示不生成源映射,该漏洞仍会强制生成。

Sumner在博文中解释,这些漏洞并非Zig之过,而是源于Bun架构混合了垃圾回收与应用驱动的内存管理。他承认Zig并非为此类任务设计,而Rust在自动化内存管理方面表现更优。

Bun的Rust化改造

手动将50万行Zig代码重写为另一种语言是一项浩大工程。“这需要一个小工程师团队花费整整一年,期间必须冻结漏洞修复、安全补丁及功能开发。”Sumner写道。

取而代之的是Claude。Sumner启动了约50个动态Claude Code工作流,峰值速度达每分钟1,300行代码,最终生成超过100万行Rust代码。整个流程耗时11天,成本约16.5万美元,其中Claude Fable承担了大部分工作。

随后,基于Rust的Bun通过了包含超一百万项断言的详尽测试套件。Sumner称,其在所有支持平台上以100%的通过率通过测试,未跳过或删除任何用例。

HashiCorp联合创始人Mitchell Hashimoto在X平台评价道:“绝对不可能有拿着那种薪水的工程师,能在11天内实现Claude所取得的里程碑。”

Zig的曲折

Bun的执行效率是否违背了软件开发的核心原则?Zig创始人Kelley对此持否定态度。他在题为《我对Bun Rust重写的看法》的文章中表达了担忧。

Kelley透露,早在Anthropic收购前,“我们就对Bun代码库中的编程实践感到震惊”。作为使用Zig的最大且最受瞩目项目之一,Bun曾是Zig软件基金会的常规捐助者。

Kelley认为,该项目激进发布新功能的策略导致漏洞堆积、错误处理粗糙及技术债务沉重。他调侃Sumner“在访问大型语言模型之前就在编写低质量代码”,并推测Anthropic收购后,Sumner面临达成业务目标而非技术目标的压力加剧。

在Kelley看来,Bun放弃Zig反而是好事,这将避免Zig被视为“如何不编写Zig代码”的反面教材。

此前,Bun团队曾试图将其部分AI辅助工作上游整合至Zig,但未获成功。据媒体披露,在重写之前,Bun团队维护了一个Zig分支,声称将调试编译速度提高了四倍,但Zig项目以“不接受基于AI的贡献”为由拒绝合并。

Kelley指出,Zig收到了大量质量堪忧的LLM生成提交。他认为,缺乏工程监督的AI生成代码将在未来引发无数问题。他质疑道:“交付这100万行未经审查代码的理由是测试套件足够强大,但这足以捕捉Zig代码中的漏洞吗?还是足以捕捉100万行未经审查的低质量代码中的漏洞?”

【星途科讯 图文丨三一一 首发于ZAKER科技,转载请注明出处】