Zig 创始人直言 An Anthropic,Bun 代码迁移背后争议几何?
Ray Myers 介绍Ray Myers 是复古未来主义软件修复师有个人主页、博客、演讲和社交页面。他关注公众对软件工程中人工智能的认知过去 3 年以此为职业重点并提升相关技术。他曾担任一家编码代理初创公司的首席架构师既是 An Anthropic 模型的客户也是其代理 Claude Code 的竞争对手目前项目是 The Coding Agency。An Anthropic 的“野心”An Anthropic 正在积极鼓吹终结软件工程他们已筹集 1320 亿美元投资即将进行估值超过 1 万亿美元的首次公开募股IPO。由于无法证明自身盈利能力只能靠兜售对未来的设想吸引投资。他们的核心观点是编码即将成为过去式接着是整个软件工程最终大多数人类劳动都将被取代。这种论调会影响人们在架构、产品和人员配置方面的决策很多决策是出于恐惧。为做出明智决策人们需保持清醒戴上质疑之帽。Bun 代码迁移事件本周An Anthropic / Bun 发布声明解释将 Bun 从 Zig 移植到 Rust 的原因此时距离迁移代码合并到主干分支已过去两个月。这一延迟让媒体炮制出夺人眼球的标题。Zig 的创始人 Andrew Kelley 随后发表回应言辞直白。有人认为他“情绪崩溃”但作者成了他的新粉丝作者觉得有时候就是得把问题挑明了说。模型行为与背景介绍作者希望自己说话能符合佛教正语的五个标准。此次 Andrew Kelley 的回应打破常规进入了“真实但不友善”的领域作者支持但不会轻易这么做。简单回顾Bun 是比 NodeJS 更快的 TypeScript 运行时Zig 是类似现代版 C 语言的系统编程语言直到最近 Bun 用 Zig 编写拥有最大的 Zig 代码库之一。Bun 声称近 100% 的代码由 AI 贡献而 Zig 完全禁止 AI 贡献代码。Bun 被 An Anthropic 收购其创始人尝试用强大代理将代码从 Zig 大规模重写成不安全的 Rust 代码几天后合并到主干分支成为官方版本。这一情况存在争议相关人员不希望 Bun 继续使用 Zig争议集中在后续讨论迁移过程本身有意思。该相信谁人们为项目选择 Zig 还是 Rust 时会参考 Bun 的情况。An Anthropic/Bun 称 Bun 尝试所有合理方法仍被内存错误困扰因为 Zig 无法胜任Andrew 则认为 Bun 的代码问题是工程决策有误过度使用 AI 代理编写和审查代码。作者更倾向于后者但怀疑主要原因是管理层批准重写代码是为展示新的 Fable 模型且 An Anthropic 本身使用 Rust而 Zig 反对使用其产品。这个问题已成为比较 Rust 和 Zig 绕不开的话题An Anthropic 夸大其词可能影响 Zig 的声誉作者理解 Andrew 不选择息事宁人的做法。这是诋毁吗作者认为 An Anthropic 是应追究责任的一方Bun 的创始人 Jarred Sumner 和 Zig 都被卷入风波。若能单纯从技术角度讨论问题最好但 An Anthropic 是在制造声势利用 Jarred 的信誉推销观点回应时评价他的信誉会很复杂作者不喜欢这样。不过如果如实报道言行被认为是诋毁也许问题出在言行本身。残酷的工作环境作者对 Bun 项目的第一印象来自 2022 年的招聘启事启事警告项目辛苦不适合看重工作与生活平衡的人。作者认为说这话的人不懂管理一直处于“赶工期”状态对健康和工作效率有害。Andrew 的文章总结 Bun 团队内部情况是沟通不畅、期望不切实际、缺乏同理心、毫无经验。作者认为这些传闻和公开声明内容差不多招聘启事就像在招灾难项目参与者。作者用过 Bun感觉不错优秀技术可能诞生于糟糕工作环境且 Bun 自己也说工作环境导致代码问题。说点好话关于迁移过程的文章写得不错细节有借鉴价值。作者欣赏他们坦诚解释向不安全的 Rust 移植通过逐个文件迁移降低风险为未来重新设计铺平道路。编程语言选择改变变得容易有道理这种迁移方法将与其他代码重写自动化方法并存各有优缺点这些技术可结合使用并通过形式化方法完善。作者最喜欢的关于软件现代化项目的书是 Marianne Bellotti 写的《快刀斩乱麻》决定前进方向仍需良好判断力和沟通能力。重写的理由站不住脚解释技术决策通常需包含动机、考虑的选项、优缺点。Richard Feldman 关于将 Roc 编译器从 Rust 迁移到 Zig 的决策是很好的例子。而 Bun 重写代码的决定合并两个月后才说明只说明了动机未充分说明考虑的选项和优缺点这可能让人觉得不诚实。只谈优点不谈缺点他们只强调 Bun 在 Rust 中表现更好的优点未对不同方案进行权衡比较。在大型代码库中使用 Rust 能获得更高安全性但编译速度会变慢过去编译时间对 Bun 很重要他们还分叉了 Zig 编译器提高速度若移植到 Rust 会增加编译时间应公开说明并解释为何整体仍是正确决定。他们还把重写后与重写本身无关的改进列进优点列表。他们没试过使用代码风格指南吗迁移动机是解决内存错误问题理论上每个内存错误都意味着违反约定应明确不同情况下的预期。Rust 有代码风格指南手动内存管理需更明确预期。另一个著名的 Zig 代码库 TigerBeetle 几乎没有内存错误问题得益于其 TigerStyle 方法和测试策略。Bun 的文章提及代码风格指南但未讨论自身代码风格指南为何不起作用及如何演变似乎对社区解决问题的主要方法敷衍了事。而且他们在文章中对代码风格指南的质疑已被自己反驳作者认为他们可能更热衷于重写而非重新架构代码。我们还在纠结语法问题吗这是讨论以智能代理为主的编码时常见的认知矛盾。Bun 的文章探讨代码风格指南选项时认为 Zig 不支持运算符重载会使代码繁琐但他们又说几个月没手动写代码。作者希望 AI 公司在“代码可读性仍然重要”问题上保持一致因为这与他们宣扬的软件工程即将终结的预言相矛盾。承认人工智能还不够强大这次智能代理重写的真正商业目的是宣传帮助 An Anthropic 讲述“人工智能就足够了”的故事但同样事件也支持相反观点如将大语言模型封装在智能代理框架中、Bun 选择 Rust 的借用检查器等都说明人工智能还不够强大。An Anthropic 鼓吹终结软件工程对所有人没好处作者保证可采用编码智能代理不必将黑暗软件工厂奉为理想模式下周会在会议上阐述对编程语言设计方向的看法。我们应构建人们需要的东西并做好戳破人工智能泡沫。