Bun 1.4:從 Zig 到 Rust 的 AI 驅動重寫引發爭議
Bun 運行時在六天內使用 AI 代理從 Zig 重寫為 Rust,這是目前最大規模的 AI 驅動代碼庫遷移。重寫後代碼質量引發爭議,包含大量 unsafe 塊和全局可變狀態,社區反應兩極分化。
2026 年 5 月,Bun 團隊做了一件軟件行業多年來私下討論的事:他們用六天時間,藉助 AI 代理,將整個運行時從 Zig 重寫為 Rust。這可能是公開的最大的 AI 驅動代碼庫遷移,涉及近百萬行代碼。
數據:約 57 萬行 Zig 代碼變成了約 68 萬行 Rust 代碼(不含 AI 生成的註釋);現有測試套件中 99.8% 一次性通過;生成的 Rust 代碼包含 13,044 個 unsafe 塊(手寫 Rust 項目平均約 73 個),999 多處靜態可變狀態,262 處 ManuallyDrop 和 81 處 mem::forget。最大的文件(JS 解析器 p.rs)有 9,765 行。
實現方式:重寫使用 Anthropic 的 Claude Code 和“動態工作流”系統,數百至數千個 AI 代理並行工作。管道流程如下:Claude 代理並行將文件從 Zig 翻譯為 Rust;每個文件有“對抗性審查員”(另一個 AI)查找錯誤;構建和測試反饋循環自動修正;Bun 的創建者 Jarred Sumner 提供高層監督。由於 Bun 歸 Anthropic 所有,團隊擁有無限計算資源。
轉用 Rust 的原因:內存安全(Bun 因段錯誤積累聲譽);編譯器速度(Bun 維護的 Zig 分支編譯快 4 倍,但維護負擔重);AI 適配性——Rust 的編譯器能立即捕獲錯誤並提供精確位置和修復路徑,其他系統語言無法提供同樣質量的反饋循環。
代碼質量爭議:雖然 99.8% 的測試通過率令人印象深刻,但代碼質量粗糙。Reddit 用户發現代碼中存在“999 處靜態可變狀態”,並稱其為“全局可變的意大利麪條式代碼”。AI 甚至添加了註釋,承認代碼不安全,但計劃在“第二階段”清理。批評者指出,在 13,000 多個 unsafe 塊且無人審查代碼的情況下,“第二階段”可能永遠不會到來。
社區反應:r/rust 和 r/programming 板塊討論激烈。一些開發者認為這是對 Rust 語言的濫用,另一些則視其為工程突破。部分 Bun 用户反饋新版本出現奇怪掛起和行為異常,但也有用户(如 Prisma Compute)報告內存使用降低和連接池更穩定。
行業意義:這次重寫表明語言遷移不再需要多年時間;瓶頸正在從代碼編寫轉向可維護性和安全性;Rust 因其編譯器的“安燈拉繩”可能成為 AI 生成系統代碼的默認語言;信任成為核心問題——代碼通過測試但無人閲讀。
結論:Bun 1.4 同時是一個工程實驗、Anthropic 的營銷策略、對 AI 生成代碼的壓力測試和改進運行時的真誠嘗試。AI 在一週內翻譯百萬行系統代碼的事實已經改變了軟件工程的規則,而社區是否準備好迎接這一變化仍是未知數。