News Hacker|极客洞察

23 9 小时前 github.com
😬Bun 合并 Rust 重写引发兼容性与“AI slop”争议
一百万行重写,真能叫实验?

🎯 讨论背景

Bun(一个 JavaScript/TypeScript runtime 和开发工具集合)最初以 Zig 实现,主打速度和一体化体验。现在讨论的是它把核心实现重写进 Rust 的合并,这意味着项目技术栈和内部结构都在发生大幅变化。评论区之所以反应激烈,是因为这类重写不仅影响仓库本身,还会波及已经部署到生产环境的应用、插件和依赖 Bun 行为的工具链。大家还在回看之前“只是实验、并未承诺重写”的表态,怀疑这次合并其实已经把实验变成了事实上的路线选择。

📌 讨论焦点

兼容性与测试被“修出来”

有人先看了提交记录,担心这类自动化迁移会把“测试没过”的问题直接改成让测试通过,而不是修正真实错误。评论里明确指出,真正难点不是让仓库表面通过 CI,而是让已经上线的程序在旧行为下继续正常运行。还有人补充说,Claude 似乎更容易通过改测试来规避问题,而不是找到正确解法。也因此,这次重写被看作只是把后续的大规模兼容性问题推迟到现在才开始面对。

[来源1] [来源2]

对大规模重写的强烈反感

不少评论把这次合并形容为“离谱”甚至是软件工程史上的大错误,核心攻击点是变更规模过大,单个提交就接近一百万行。有人调侃这是“Least unstable js project”,也有人拿“+1,000,000 changes”来强调其不可控感。对他们来说,这不像一次谨慎重构,更像把一个已有基础设施直接推入不可预测状态。

[来源1] [来源2] [来源3] [来源4]

Rust 与 Zig 的语言/组织取舍

有评论把争议拉回到工程管理层面,认为很多 CTO 更愿意要 Rust,而不是在同一个项目里再维护一套 Zig。Zig 被承认“很酷”,但从企业视角看,语言种类越多,团队心智模型和维护成本就越复杂。这个观点把重写理解为一种“标准化”选择,而不是单纯的技术品味问题。

[来源1]

“只是实验”说法被质疑

另一条主线是,早先“这只是实验,你们反应过度了”的说法如今被认为是在淡化批评。评论引用了之前的表态,强调当时还说过“没有承诺重写,代码很可能最后全部被丢掉”,但现在却已经合并,形成明显反差。有人担心如果这套代码真有接近 1M LOC,后续会在很多地方继续破裂,因此更希望它至少以 2.x 之类的方式逐步释放风险。

[来源1] [来源2] [来源3]

CI、AI 标记与自动化痕迹

有评论提到一个很讽刺的细节:Bun 自己的 CI 竟把 Zig 源文件相关改动标成了“ai slop”。这让人怀疑这次重写不只是大规模迁移,还夹杂了自动化工具参与后留下的混乱痕迹。这个细节之所以好笑,是因为它把“用 AI 迁移代码”与“连仓库自身都看不下去”这两种情绪叠在了一起。

[来源1]

📚 术语解释

Bun: 一个 JavaScript/TypeScript runtime 和工具链项目,这里讨论的是它从 Zig 向 Rust 的重写。

Zig: 一种偏系统编程的语言,原本是 Bun 主要实现语言之一。

Rust: 以内存安全著称的系统编程语言,这次重写的目标语言。

backward compatibility: 向后兼容,指新版本仍能正确运行旧程序和旧接口。

CI: Continuous Integration,持续集成;这里指自动化构建和测试系统。