Bun 迁移:从 Zig 到 Rust 以及 AI 驱动重写的兴起

软件工程领域目前正在见证 Bun(高性能 JavaScript 运行时)开发过程中的一次挑衅性转变。Bun 正在将其代码库从 Zig 转向 Rust,这一举动在 Hacker News 和 GitHub 上引发了巨大争议。这次迁移不仅仅是编程语言偏好的改变,它还为新兴的 AI 辅助大规模重构趋势提供了一个案例研究。

转变:超越 Zig

在很大一部分初始阶段,Bun 一直是 Zig 编程语言的旗舰项目,展示了该语言构建高性能、生产就绪系统的能力。然而,最近的 pull requests——特别是 .zig 文件的移除——标志着向 Rust 的战略转向。

虽然此次迁移的技术理由经常引发讨论,但社区已指出关于 Zig 稳定性的几个反复出现的主题。一些开发者长期以来一直表示担心 Zig 对于企业级可靠性来说仍然过于不稳定,并引用语言演进的波动性作为迁移到 Rust 的主要原因,因为 Rust 提供了一个更成熟的生态系统和更强的安全保证。

AI 在重写中的角色

这次转型中最具争议的方面或许是怀疑 AI 在执行重写中所扮演的角色。围绕 pull requests 的讨论强调了使用 LLMs(大语言模型)来促进迁移,一些贡献者注意到存在“AI slop”(AI 垃圾内容)或使用 Claude 等工具来处理死代码移除和翻译。

这导致了开发者社区的分歧:

  • 乐观主义者: 一些人将其视为生产力的惊人飞跃,好奇究竟是哪些特定模型在实现如此快速的转换,并思考在整个模块都可以在一周内重写的时代,软件工程师的角色必须如何演变。
  • 怀疑论者: 其他人则警告不要进行“vibe coding”(氛围编码),认为 AI 生成的重写可能会引入微妙的 bug 或维护性问题。一位批评者指出,这种转换的速度按传统标准来看几乎是“不可思议的”,并对 AI 生成代码的长期负担表示担忧,指出了结果 diffs 中的 TODO 标记的普遍存在。

更广泛的行业影响

Bun 的举动为其他基于 Zig 构建的项目带来了涟漪效应。由于 Bun 是该语言为数不多的高知名度“客户保证”项目之一,它的离开可能会给其他旗舰项目(例如 TigerBeetle)带来压力,使其在面对市场营销和企业压力时,不得不证明其继续使用 Zig 的合理性。

"I wonder if Tigerbeetle will also have problems arguing for their solution now that the other project they can point to for customer assurance is gone."

结论

Bun 从 Zig 到 Rust 的转型不仅仅是一次技术迁移;它是软件维护未来的试金石。如果像 Bun 这样复杂程度的项目能够使用 AI 驱动的工作流成功迁移,它可能预示着处理遗留代码的方式将发生范式转移。然而,如果结果是一个布满 AI 生成痕迹的脆弱代码库,它将成为一个关于自动化重构局限性的警示故事。

Sources