大概两个月前讨论过这个事情,最近x冲浪又看到了一些后续,想到写一篇文章吧
关于 Zig 作者 Andrew Kelly 炮轰 Anthropic
| 角色 | 定位 | 事实 |
|---|---|---|
| Bun | 高速 JavaScript / TypeScript 运行时 | 原项目使用 Zig 编写,是 Zig 生态中最大的代码库之一;被 Anthropic 收购后重写为 Rust |
| Zig | 现代系统编程语言,定位类似 C 但更安全 | 创造者 Andrew Kelly 以直率和不妥协著称;社区规则对 AI 生成代码零容忍 |
| Anthropic | 顶尖 AI 实验室,旗下有 Claude 等大模型 | 已融资 1320 亿美元,IPO 估值预计超 1 万亿美元;内部主要使用 Rust |
| Rust | 以内存安全闻名的系统语言 | Bun 收购后被迁移到 Rust(unsafe Rust) |
矛盾:Bun 宣称代码近 100% 由 AI 贡献,而 Zig 社区对 AI 生成代码零容忍。当 Bun 一夜之间从 Zig 转向 Rust,这不仅是技术路线变更,更是一场精心策划的叙事之战。
Anthropic 的底层叙事:软件工程的终结
Anthropic 正在推销的剧本:
编程会消失 → 软件工程会消失 → 大部分人类劳动都会被 AI 替代
为什么要讲这个故事?
- 已融资 1320 亿美元,估值冲向万亿,却无法展示盈利
- 巨额资本需要故事来支撑,"AI 取代一切"就是那个故事
- 利用资本规模来定义"什么是真相"
Ray Myers 评价道:Anthropic 是一个不可靠的叙事者,读者需要戴上怀疑的帽子才能看清真相。
迁移事件时间线
- 收购:Anthropic 收购 Bun
- 实验:Bun 创始人用"智能体工作流"将整个代码库从 Zig 重写为 Rust(unsafe Rust)
- 合并:几天之内重写版本被合并入主线,成为官方版本
- 公关:整整两个月后才发布官方博客解释决策
反常之处:在基础设施项目中,提前解释技术方向才是常态。延迟两个月的原因是让科技媒体有足够时间将故事包装成"AI 驱动的急速重写"。
Andrew Kelly 的回应
Andrew Kelly 发表了异常直白的回应,直接批评 Bun 团队的工程决策问题,而不是把锅甩给 Zig 语言本身。
社区反应:
- 有开发者调侃:“我们有一个相当大的开源 Zig 代码库,我现在好怕他会来看我们的代码”
- Ray Myers 说自己读到这个回应时差点跳起来欢呼
- 原因:“我们打破了真实但不够友善的社交礼仪,但这也许是唯一能让真相浮出水面的方式”
三种版本的故事
| 版本 | 核心观点 |
|---|---|
| Anthropic 版本 | Bun 已尝试所有合理方法,仍被内存 bug 淹没;Zig 无力回天,Rust 是唯一救赎 |
| Andrew Kelly 版本 | Bun 代码库混乱是因为糟糕的工程决策(过度依赖 AI 代理编写和审查代码),是人的问题,不是语言的问题 |
| Ray Myers 版本(最可能) | Bun 确实面临内存 bug 挑战,但有多种解决方案;管理层批准 Rust 重写是因为这是绝佳的营销机会(展示最新模型 + 内部本来就喜欢 Rust + Zig 社群公开反对使用 Anthropic 产品) |
迁移说明文档的三大缺陷
一个负责任的技术决策文档通常需要包含三要素:动机、备选方案、利弊权衡。
| 要素 | Bun 文档的表现 |
|---|---|
| 动机 | ✅ 清楚——内存 bug 太多,每周约 4 个修复提交 |
| 备选方案 | ❌ 仅提到 TigerBeetle 社区的 TigerStyle 风格指南,以"难以执行"为由敷衍跳过 |
| 利弊权衡 | ❌ 整篇只有"在 Rust 中变得更好"的正面列表,未提任何代价(如构建时间必然变长) |
致命矛盾:
一边说风格指南难以执行,一边又声称通过智能体审查成功执行了 porting 这份风格指南。
Bun 之前为了缩短构建时间不惜 fork Zig 编译器——说明他们清楚构建时间是核心痛点,却在迁移文档中完全回避了这个代价。
结论:先有了结论,再回头补理由,显得很不诚实。
AI 同样不行的 6 个证据
从同一个事件可以推导出与"AI 足够强大"完全相反的结论:
- 需要把大模型包装成 agent 框架,恰恰说明单个模型本身能力不足
- 选择 Rust 的借用检查器,就是因为 AI 无法可靠地捕获内存错误
- 避免使用难看的指针包装器,说明代码仍需人类维护和阅读——如果 AI 真能接管一切,可读性还重要吗?
- Ray Myers 自己用混合方法在 Zig 版 Bun 中找到了50 个 bug,AI 没能发现
- 开源项目维护者正被低质量的 AI 贡献淹没
- 重写过程中强调保持代码结构熟悉——这说明维护者是人类而非 AI
反证:Zig 本身没有问题——TigerBeetle 案例
TigerBeetle是一个用 Zig 写的金融交易数据库,对可靠性要求极高。
它没有像 Bun 那样被内存 bug 困扰,反而成为当今最可靠的数据库之一。
TigerStyle 核心原则
所有内存必须在启动时静态分配,初始化后绝不动态分配或释放内存。
这种设计消除了 use-after-free 隐患,让整个系统更简单、更易推理。
内存 bug 对比
| 项目 | 内存 bug 情况 |
|---|---|
| TigerBeetle | 几乎满分,几乎无内存 bug |
| Bun(Zig 版) | 每周约需修复 4 个 bug |
关键洞察:区别不在于语言,而在于工程纪律。Bun 团队声称"试过一切方法",却对 TigerStyle 这样的成熟实践只嘴上提一句便跳过。
管理问题:90 小时工作周
Bun 资深员工 2022 年招聘帖原话:
“前 9 个月将是苦战,若看重不工作的时间可能不适合。”
Ray Myers 评价:“无异于经理人自报不懂管理,长时间高压损害知识工作者的健康与效率早有实证。”
Andrew Kelly 总结(小道消息):
“沟通糟糕,期望不切实际,缺乏同理心,纯属一团糟。”
Ray Myers 的建议:
别为吹嘘 90 小时工作周的人打工,去为守护你睡眠的人工作。
结论
叙事与现实的鸿沟:Anthropic 是不可靠的叙事者,万亿市值的故事需要技术决策来维持。必须保持批判性思维。
语言不是原罪:TigerBeetle 已证明,只要有正确的工程纪律和风格指南,Zig 完全可以构建高可靠系统。
AI 还远远不够:无论是需要用 agent 包装借用检查器兜底,还是 Ray Myers 亲手找到的 50 个 bug,都在反复告诉我们——不能用 more tokens 来替代学习真正的技能。
建设性的出路:可以一边使用编码 agent 提升效率,一边拒绝把"黑暗软件工厂"当成理想。语言的选择正在变得可逆,但良好的判断力和沟通能力永远不可替代。