BunのRust書き換え:エンジニアリング哲学の衝突

BunのRust書き換え:エンジニアリング哲学の衝突

Zig Software FoundationはBunのRust書き換えを安堵と見なしている

Zig Software Foundation (ZSF) は、BunがコードベースをRustで書き換えるという決定に対し、強い支持を表明しました。この動きは、ZigプロジェクトとBunのエンジニアリング手法の分離として必要なものであると考えています。ZSFによれば、この移行は、BunがZigコードの書き方の「悪い例」として注目を集めてしまっていたという「純負債」を取り除くことになります。

コード品質とエンジニアリングに関する根本的な不一致

ZSFは、Bunの開発が「無責任なソフトウェアエンジニアリング手法」によって特徴付けられていたと主張しています。これは、Zigにとって頻繁な論争点となるメモリ安全性に関する批判を招く原因になったと彼らは主張しています。

Bunのコードベースに対する技術的批判

ZSFは、元のZig実装におけるいくつかの具体的な技術的失敗を指摘しました:

  • 技術的負債: コードベースは「ハックの上にハックを重ねたもの」と表現され、バグの排除やリフレクションを無視した、無謀なペースでの機能提供が行われていたとされています。
  • アサーションの乱用: ZSFは、アサーションの乱用が低品質の主要な指標であると指摘しました。
  • comptimeの誤用: ZSFは、Bunチームに対し、comptimeinlineの使用方法がコンパイル時間やバイナリサイズに悪影響を与えているとして、長年警告してきたと主張しています。
  • LTOの誤解: ZSFは、Rust書き換えによるパフォーマンス向上はLink Time Optimization (LTO) によるものであるというBunの主張に対し、ZigはBunの存在期間を通じてLTOをサポートしてきたと述べて反論しています。

「エンジニアリング・リソース」の議論

ZSFは、バグは言語機能だけに頼るのではなく、タスクに十分なエンジニアリング・リソースを投入することで排除されるべきだと主張しています。彼らは、厳格な努力とZSFとの健全な関係を通じて、Zigで高い品質を維持しているプロジェクトの例としてTigerBeetleを挙げています。

管理体制と文化的な摩擦

技術的な懸念を超えて、ZSFは、ZigプロジェクトとBunのリーダーシップ間の専門的な関係の崩壊について述べています。

リーダーシップとワークカルチャー

ZSFは、Bunの創設者であるJarred Sumnerを「初心者のようなエネルギー(beginner energy)」を持つ人物として特徴付けています。これは、学生にとってはポジティブな特性ですが、マネージャーとしては問題があると彼らは見ています。この記事では、コミュニケーション不足、非現実的な期待、そして社内の共感性の低さに関する報告が引用されており、Sumnerの「Ovenは、泥沼のような過酷な仕事(grind)になる」という公開声明や、ワークライフバランスを重視する人は適していないかもしれないという発言も引用されています。

VC資金調達と買収の影響

ZSFは、、オープンソースの考え方からベンチャーキャピタル(VC)の支援を受けるスタートアップへと移行したことで、Bunの優先順位が「スタートアップの出口戦略」や生産性の幻想へとシフトし、それが最終的にAnthropicによる買収へと繋がったと示唆しています。ZSFは、買収後にZSFへの寄付が停止し、予定されていた会議が無視されたことで、関係が事実上終了したと述べています。

コミュニティ・レスポンスと反論

ZSFの視点に関する発表は、開発者コミュニティ内で大きな議論を沸かせました。その反応は、その正直さが新鮮であると捉えるか、あるいはそのトーンがプロフェッショナルではないと捉えるかで分かれました。

Bunの慣行への擁護

Jarred Sumnerは、Bunがファジング(fuzzing)を使用していないという主張に対し、Fuzzilliの統合や、Zigコードのファジングから得られたバグ修正に関するいくつかのプルリクエストを証拠として提示しました。

ZSFのトーンに対する批判

多くのコミュニティメンバーは、Jarred Sumnerの公開批判は「人身攻撃(ad hominem)」であり、真面目なプログラミング言語プロジェクトのリーダーとして不適切であると主張しました。批判者たちは、「責任あるエンジニアリング手法」を「組み込みのメモリ安全性」の代わりとして提示することは、Zigのセールスポイントとして弱いと指摘し、Rustが提供する安全性への到達方法として、開発者に「より懸命に働く」ことを要求することは、魅力的な提案ではないと主張しています。

AIとRustへの視点

一部の観察者は、LLMのLLMの台頭により、Rustのボローチェッカー(borrow checker)を扱うことが容易になり、Rustが安全性を保証しつつ、Zigの主な利点(シンプルさ)を侵食している可能性があると指摘しています。

Sources