/note/tech

My Thoughts on the Bun Rust Rewrite

要約:

■ 1. Jarredとの関係の歴史

  • Jarredは約5年前にZigコミュニティに参加し、「初心者のエネルギー」を持つ人物として評価された
  • 積極的な試行と失敗を繰り返しながら急速に成長する姿勢は、学習態度として肯定的に捉えられていた
  • BunはJavaScriptという最も人気のある言語向けのツールチェーンとして注目を集めた
  • JarredはThiel Fellowshipの影響を受け、クラウドファンディングではなくベンチャーキャピタル(VC)を選択した
  • 当初、JarredはZigプロジェクトへの感謝を示していた:
    • BunのウェブサイトでZigの貢献を明記
    • Zig Software Foundation(ZSF)に年間6万ドルの定期寄付を実施

■ 2. VC化後の関係悪化

  • Bun がVC出資を受けてスタートアップ化したことで、JarredはビジネスリーダーとしてZigコミュニティから距離を置くようになった
  • 採用・雇用面での問題が発生:
    • 「最初の9ヶ月はグラインドになる」という過酷な労働環境を求める発言
    • コミュニケーション不足、非現実的な期待、低い共感力、経験不足など、マネジメントの失敗が報告された
    • その結果、Zigコミュニティの優秀な人材の多くがOven/Bunへの就職を避けた
  • ZigとJarredの間に溝が広がった:
    • JarredはLSP実装やVSCode統合を優先するよう求めたが、Zig作者はより長期的なビジョンを持っていた
    • 両プロジェクトの価値観が根本的に乖離していた

■ 3. Bunのコード品質の問題

  • ZSFはBunのコードベースを定期的に確認する中で、深刻な問題を発見した:
    • ハックの重ね掛け
    • アサーションの乱用
    • バグや技術的負債を排除する時間をほとんど取らずに機能を追加し続ける姿勢
  • JarredはLLMを使用する以前から低品質なコードを書いていた
  • ZSFはBunが「ネット負債」であると判断した:
    • Zigのメモリ安全性に対する批判を招く手本として、Bunが「Zigコードを書いてはいけない方法」の典型例になっていた
    • 将来的な身売りによる風評被害とZSFへの寄付停止が予見された

■ 4. Anthropicによる買収とRustリライト

  • AnthropicによるBun買収はZSFにとって安堵をもたらした:
    • 寄付の停止はあらかじめ予測され、財務的な準備が整っていた
    • 定例ミーティングが無連絡でキャンセルされても驚きはなかった
  • 買収直後からRustリライトが予想されていた
  • ZSFはRustリライトを歓迎した:
    • AnthropicによるBun買収がZigコミュニティにスロップ(低品質な)コントリビューションや、LLM出力をフォーラムに貼り付けるようなAI熱狂者の流入をもたらしていたため
    • リライトにより、ZigがAIと結びつく言語として認識されるリスクが解消された

■ 5. Bunのブログ記事への反論

  • バグ排除に関する誤った二項対立の提示:
    • 「スタイルガイド」対「言語機能」という対比でバグ対策を論じているが、本質はエンジニアリングリソースの投入であり、TigerBeetleへの評価が不十分
  • テストスイートに関する矛盾:
    • 百万行の未レビューコードを「テストスイートで十分」と主張しながら、Zigコードに多くのバグがあると認めている点が矛盾している
  • パフォーマンス向上の誤った帰属:
    • パフォーマンス向上の要因とされるLTO(Link-Time Optimization)は、Zigが最初からサポートしており、有効化を推奨していたにもかかわらず無視された
  • ファジングテストに関する虚偽:
    • ブログではZigコードの熱心なファジングを示唆しているが、Bunチームは以前ZSFとの対話でファジングを行っていないと明言していた
  • バイナリサイズ削減作業の誤った位置付け:
    • バイナリサイズ削減に関するエンジニアリング作業はリライトとは無関係であり、本来Zigコードベースで実施すべきだった作業
    • ZSFはcomptimeの過剰使用について長年警告していた
  • コンパイル速度の不記載:
    • Zigコンパイラプロジェクト(約60万行)はクリーンビルド16秒、インクリメンタルコンパイル90msを達成しているが、Rustリライト後のBunの対応数値は示されていない

■ 6. 今後の展望と自己反省

  • 本件の本質は言語機能の優劣ではなく、両プロジェクトの価値観の乖離と関係の破綻にある
  • Jarredへの感情の整理:
    • 経営者としての批判とZigへの影響に対する憤りは認めつつ、個人としての成功と幸福を認める
    • Jarredは自身の目標(生産性の追求、経済的成功、テック著名人としての地位)を達成した
  • 本記事に関する自己批判:
    • 個人攻撃として受け取られた原因は、自分でも気づいていなかった未消化の感情が文章に表れていたため
    • Zigユーザーが「元ユーザーが言語作者に批判される」という表面的な理解から不安を感じた可能性への配慮が欠けていた
    • ZSFと公にZigを使用・言及している関係者との関係は、本件を唯一の例外として良好であることを強調
  • 今後はZigコミュニティの実態(冷静な人々による協力と創作)を伝える肯定的なコンテンツに注力する方針を示す