機(jī)器之心編輯部
這幾天,科技圈都在吃瓜:編程語言 Zig 的創(chuàng)始人 Andrew Kelley 怒了。
![]()
原因在于原來全面押注 Zig 語言的 Bun,被其創(chuàng)始人 Jarred Sumner 用 Rust 語言重寫了。
![]()
Andrew Kelley 毫無遮攔地展示了自己的怒火,他沒有在這個現(xiàn)象級技術(shù)事件中說客套話,直接將矛頭對準(zhǔn)了 Jarred Sumner 的個人工程習(xí)慣、管理能力,以及這起事件背后的商業(yè)邏輯。
Bun 是一個高性能 JavaScript/TypeScript 運(yùn)行時,旨在成為 Node.js 的更快速、現(xiàn)代的直接替代品,近年來已經(jīng)成為了前端世界挑戰(zhàn) Node.js 霸權(quán)的重量級選手。
Bun 的核心賣點(diǎn)是極速:無論是啟動速度、依賴安裝還是測試運(yùn)行,都遠(yuǎn)超競品,其部分原因在于它是用 Zig 語言編寫的。
去年 12 月,Anthropic 宣布收購了 Bun,將其作為基礎(chǔ)設(shè)施來驅(qū)動其 AI 編程工具 Claude Code 和 Claude Agent SDK。Jarred Sumner 和 Bun 團(tuán)隊(duì)的其他成員目前都在 Anthropic 工作。
在大規(guī)模應(yīng)用,尤其是作為 Claude Code 的底層后,Bun 團(tuán)隊(duì)認(rèn)為遇到了難以根除的穩(wěn)定性問題。
具體來說,Zig 版本的 Bun 存在大量內(nèi)存安全 bug——use-after-free、double-free、錯誤路徑中忘記釋放內(nèi)存等。這些問題在 Zig 中只能靠編碼規(guī)范約束,而在 Rust 中通過借用檢查器和 Drop 機(jī)制會直接變成編譯錯誤。
另一方面,Zig 上游社區(qū)對大語言模型(LLM)生成代碼采取零容忍政策,即使是與 AI 無關(guān)的優(yōu)化改動也無法合入上游。Bun 團(tuán)隊(duì)重度依賴 AI 輔助開發(fā),繼續(xù)使用 Zig 意味著必須長期維護(hù)自己的編譯器分支,成本很高。
于是在今年 5 月,我們見證了科技圈的一場大工程:Bun 的創(chuàng)始人 Jarred Sumner 宣布,將 Bun 的百萬行代碼在 11 天內(nèi)推倒重來用 Rust 重寫了,他們使用的是 Anthropic 當(dāng)時尚未公開發(fā)布的Claude Fable 5(Mythos 級模型)和 Claude Code 的動態(tài)工作流能力。
![]()
這是一次史詩級的智能體工作流(Agentic Workflow)大測試,后來也被 Anthropic 作為 Dynamic Workflows 的標(biāo)桿案例進(jìn)行宣傳,但也因?yàn)椤副撑研叛觥挂齺砹藸幾h。
Zig 創(chuàng)始人 Andrew Kelley 在最近的博客文章中指出,Bun 在改寫前之所以 Bug 頻出,根本原因是 Jarred Sumner 糟糕的工程習(xí)慣。
首先是 AI 還沒有興起的時候,Jarred 就一直在寫垃圾代碼。Kelley 表示,Zig 團(tuán)隊(duì)經(jīng)常會檢查用戶的代碼庫,而他們對 Bun 的代碼庫感到「極其恐懼」。里面充滿了黑客式的補(bǔ)丁摞補(bǔ)丁(hacks on top of hacks)、濫用斷言,并且為了快速上線新功能,幾乎從不花時間消除 Bug 和技術(shù)債。
然后就是用 Claude 生成的百萬行代碼了。Kelley 反問道:「Bun 官方聲稱 100 萬行未經(jīng)過人工審查的 Rust(AI 寫的)代碼因?yàn)橛袦y試用例所以是安全的;那如果測試用例真的這么完備,為什么原來用 Zig 寫的時候沒能抓出那些煩人的 Bug?」
現(xiàn)在,Kelley 對 Jarred 從一個有新手沖勁(beginner energy)的開源開發(fā)者變成一個糟糕的經(jīng)理(stinky manager)感到極度失望。
Kelley 直言當(dāng)?shù)弥?Bun 決定棄用 Zig 時,他不僅沒有被背叛的憤怒,反而松了一口氣。他害怕打著 Zig 招牌的 Bun 會讓外界產(chǎn)生誤解,更怕它引來一群只會復(fù)制粘貼 AI 代碼的用戶。他甚至諷刺地表示,自己正捧著一杯茶,慶幸「這終于不關(guān)我的事了」。
這么直白的開火,科技圈的其他人也紛紛加入戰(zhàn)局,發(fā)表了看法。
首先是算了一筆賬:都說 Claude 的 token 太貴,但根據(jù) Jarred Sumner 和 Bun 官方公布的數(shù)據(jù),Rust 語言重寫的 Bun 項(xiàng)目預(yù)計(jì)消耗了 16.5 萬美元的 API 費(fèi)用。在科技圈和工程界看來,這個價格和時間便宜得令人恐懼。
僅僅從賬面上看,AI 將開發(fā)成本壓縮到了原本的十分之一左右,時間也從大約一年減到了不到兩個星期。
![]()
其次是對開源社區(qū)文化與 AI 時代碰撞的態(tài)度。有人在看完 Zig 創(chuàng)始人 Andrew 的博文之后感到極度不適,認(rèn)為他公開攻擊曾經(jīng)的重要用戶和贊助者(Bun 曾長期資助 Zig),顯得缺乏職業(yè)素養(yǎng),甚至有人激進(jìn)地表示「從未如此主動希望一種編程語言失敗」。
但也有老派程序員站出來聲援,認(rèn)為在這個被資本和 AI 泡沫裹挾的時代,Andrew 只是在捍衛(wèi)純粹的工程質(zhì)量,展現(xiàn)了當(dāng)年 Linus Torvalds 的作風(fēng)。
![]()
當(dāng)然,大家更關(guān)心的是項(xiàng)目這么折騰了一番之后,還是否好用。
目前爭議最大的的地方在于,這 100 萬行代碼由于是 AI 直接由 Zig 機(jī)械翻譯而來,缺少人類工程師的架構(gòu)重構(gòu)。新代碼庫中殘留了高達(dá) 2.7 萬行 unsafe 代碼塊。很多人擔(dān)憂,未來人類開發(fā)者在維護(hù)、閱讀和修改這坨龐大的「AI 生成物」時,耗費(fèi)的認(rèn)知成本和排錯成本,最終可能會超過今天省下的前置開發(fā)成本。
這個打破軟件工程歷史規(guī)律的項(xiàng)目,最終會是一場 AI 改變編程范式的里程碑,還是會在未來化作一座難以維護(hù)的技術(shù)債火山?可能只能交給時間來驗(yàn)證了。
參考內(nèi)容:
https://bun.com/blog/bun-in-rust
https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.html
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.