為什麼 Bun 的 Zig-to-Rust 實驗是對的
Bun 應該保留公開的 Zig-to-Rust 實驗,因為它能用真實程式碼比較速度、安全性與維護成本,而不是靠語言信仰做決策。

Bun 保留公開的 Zig-to-Rust 實驗是對的,因為它能用真實程式碼比較速度、安全性與維護成本。
Bun 的公開移植不是重寫宣言,這正是它最有價值的地方。團隊已經把一個龐大的 Rust 分支放在 Zig 程式碼旁邊,配合約 300 條規則的移植指南與 AI 輔助翻譯,涵蓋數十萬行程式碼。這不是表演,而是少見的誠實測試:同一個產品、同一個 runtime 目標、同一套效能標準,直接比較兩種系統語言在真實壓力下的表現。
第一個論點:實驗比語言立場更重要
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
系統團隊最浪費時間的地方,往往不是寫程式,而是爭論語言信仰。Bun 一直把速度當核心競爭力,Zig 也確實是這段故事的一部分,但當代碼庫大到足以拖垮團隊時,問題就不再是誰在紙面上比較優雅,而是誰能在吞吐量、可維護性與迭代速度之間交出更好的組合。

Bun 的 Phase A 做法很聰明,因為它先把翻譯和正確性拆開。先逐檔忠實移植邏輯,再要求 crate-by-crate 編譯,團隊就能在不被整合失敗干擾的情況下檢查語意。這種方法比起一開始就談架構重寫更可靠,因為後者很容易變成憑感覺下注。先做受控翻譯,才有可比較的基線。
第二個論點:Rust 讓安全性的取捨更可量化
Rust 最強的地方,不是它一定比 Zig 快,而是它改變了犯錯的成本結構。Bun 的 runtime 處在記憶體安全、並發與 FFI 邊界最容易出事的位置,這些地方一旦出現 bug,代價就是實際的生產事故。Rust 移植能讓團隊測到安全保證是否真的減少工程摩擦,而不是只停留在理論風險。
這對 Bun 特別重要,因為它同時承接 JavaScript 的開發體驗與底層系統工作的複雜度。如果 Rust 版本能降低新手進入門檻、減少 bug 類型,或提升對複雜子系統的信心,那就是具體收益。若沒有,實驗也會告訴團隊 Zig 在哪些地方仍然更合適。無論結果如何,都比再打一輪語言口水戰更有價值。
反方可能怎麼說
最強的反對意見很直接:這會分散 Bun 的主線任務。runtime 的勝負在於快速交付、保持精簡,以及維持可預測的效能。大規模、AI 輔助的 Rust 分支可能帶來重工、重複實作,甚至製造一種假的進展感。如果 Zig 已經讓 Bun 同時擁有高效能與精細控制,為什麼還要把第二套實作請進來?

這個擔憂不是杞人憂天。大型轉譯常常變成沒人想維護的程式碼山,AI 生成內容還可能放大這個風險。更現實的是,團隊很容易把時間花在比較兩個版本,而不是改善今天使用者正在跑的產品。
但這個批評只有在實驗被當成承諾時才成立。Bun 並沒有這樣做,Jarred Sumner 已明確表示團隊沒有承諾重寫,這些程式碼甚至可能全部丟掉。這才是正確姿勢。當目標是高風險的架構決策時,可丟棄的移植不是浪費,而是有紀律的研究。限制也很清楚:如果它開始吃掉 roadmap,或變成長期並行的第二套主線,它就會從證據變成負擔。只要還維持在這條線內,它就是值得的風險。
你能做什麼
如果你是工程師、PM 或創辦人,請複製方法,不要複製語言選擇。當核心子系統出現爭議時,做一個範圍窄、時間可控的替代實作,並先定義成功指標:效能、缺陷率、上手時間、建置複雜度與維護成本。若條件允許,把實驗公開,因為透明會逼團隊使用更好的標準,也能避免把偏好偽裝成事實。重點不是贏一場 Zig 或 Rust 的辯論,而是找出真正對產品有利的取捨。