535,496行を11日で「別の言語」に移す──Bunの全面書き換えが見せた、コーディングエージェントの新しい使いどころと後味

BunがZigからRustへ53万行を11日で全面移植。複数のコーディングエージェントを並走させた事例の規模と動機、開発現場への意味、そして「レビューなしの大量生成は信頼できるのか」という批判までを整理します。

シェア
535,496行を11日で「別の言語」に移す──Bunの全面書き換えが見せた、コーディングエージェントの新しい使いどころと後味

JavaScript/TypeScriptランタイム「Bun」の作者 Jarred Sumner 氏が、Bunの中身を Zig から Rust へ全面的に書き換えたことを公開しました。53万行規模のコードベースを、複数のコーディングエージェントを並走させて11日間で移し替えたという内容です。単なる高速化の話ではなく、「言語の乗り換え」という重い作業を、エージェントがどこまで担えるのかを示す事例として注目を集めています。同時に、レビューのあり方をめぐる批判も出ており、両面を整理します。

公開された数字が示す規模

作者が公開したブログによると、書き換えの規模と条件は次のとおりです。人手で進めれば1年がかりとも見積もられた作業を、11日に圧縮したと説明しています。

項目内容
元のコード535,496行(Zig)
変更の規模差分は約100万行、6,502コミット
期間11日間
使ったツールClaude Code の動的ワークフロー+Claude Fable 5(プレリリース)
並列度ピークで約64インスタンスを4つの作業ツリーに分けて実行
生成速度ピークで毎分約1,300行
APIコスト約16万5,000ドル(入力59億・出力6.9億トークン、キャッシュ読み出し720億)
テスト約6万件のテスト・140万超のアサーション。6プラットフォームすべてで100%合格。テストの削除・スキップはなし

移行後の実測では、実行速度が2〜5%向上し、バイナリは約20%小さくなり、開発サーバー再ビルド時の計測可能なメモリリークが解消したとしています。

なぜ「速くする」ではなく「言語を替える」だったのか

書き換えの動機は性能ではなく、バグの根を断つことにありました。Bunは、ガベージコレクション(GC)で自動的にメモリを解放するJavaScriptと、手動でメモリを管理するZigを同居させています。作者は、この組み合わせが「解放済みメモリへのアクセス(use-after-free)」「二重解放」「エラー処理の境目でのメモリリーク」といった不具合を繰り返し生む温床になっていたと説明します。GCと手動管理の混在は言語設計が想定しづらい領域で、Rustの所有権モデルでこの層を作り直す判断をした、という筋書きです。

開発現場にとって何が変わるか

この事例が示すのは、「言語間の全面移植」という、これまで数か月〜1年規模で見積もられてきた作業の時間感覚が動きうる、ということです。ポイントは、エージェントに丸投げして終わりではない点にあります。

  • 並列化と分割:多数のエージェントを作業ツリーごとに分け、動的ワークフローで束ねることで速度を出している。1体を賢くするより、多数を段取りよく走らせる設計が効いている。
  • テストが移植の可否を握る:140万超のアサーションが「移し替えても壊れていない」ことを判定する土台になっている。厚いテスト資産があるコードほど、こうした移植の現実味が増す。
  • コストは見える化される:約16万5,000ドルという値札は、人件費1年分との比較で語られている。速さと引き換えのAPI課金を、事前に見積もる前提が要る。

裏を返せば、テストが薄い・仕様が曖昧なコードベースでは、同じ手法をそのまま持ち込むのは難しいという線引きにもなります。

「テストが通れば十分」と言えるのか

一方で、この進め方には批判も出ています。Zigの作者 Andrew Kelley 氏は、100万行規模のコードを人手のレビューを通さずに出す姿勢を疑問視し、「Zigのコードのバグは捕まえきれないテスト群が、機械が生成した100万行のバグなら捕まえられるというのか」という趣旨の指摘をしています。テストが原コードのバグを取りこぼしていたのなら、その同じテストで生成コードの安全性をどこまで保証できるのか、という論点です。

これは「AIが書いたコードを誰がいつ検証するのか」という、生成AI時代の開発全体に通じる問いでもあります。速度とコスト削減は明確な利点ですが、レビュー工程を省いた大量生成には、こうした懸念も指摘されている、という温度で受け止めるのが妥当でしょう。テストの網羅性、段階的な移行、監査可能なログといった安全弁をどう設計するかが、同じ手法を自社で試す際の分かれ目になりそうです。

参照: Rewriting Bun in Rust(Bun 公式ブログ)Zig creator calls Bun's Claude Rust rewrite 'unreviewed slop'(The Register)Rewriting Bun in Rust(Simon Willison)Bun Rewrites 535K Lines of Zig to Rust in 11 Days Using Claude(Developers Digest)

続きを読む

締めた手綱を、2日で少し緩める──Claude Code v2.1.219が入れ子サブエージェントを「既定で深さ3」へ戻し、ワークフローに「15体未満」の目安を入れた

締めた手綱を、2日で少し緩める──Claude Code v2.1.219が入れ子サブエージェントを「既定で深さ3」へ戻し、ワークフローに「15体未満」の目安を入れた

Claude Code v2.1.219が、2日前に既定オフにした入れ子サブエージェントを「既定で深さ3」へ戻し、動的ワークフローに「15体未満」の目安を新設。自律性と安全性の綱引きと、無人運用での当てどころを整理します。

FF
一度こしらえた拡張を、別のエージェントで使い回す──Copilot CLIがOpen Plugin SpecとMCP設定を取り込み、砂場は「既定で締める」側へ

一度こしらえた拡張を、別のエージェントで使い回す──Copilot CLIがOpen Plugin SpecとMCP設定を取り込み、砂場は「既定で締める」側へ

GitHub Copilot CLI の最新版が、ベンダー中立の「Open Plugin Spec」と MCP 設定ファイルを読み込めるようになった。他のエージェント向けに作った拡張がそのまま持ち込める一方、OSサンドボックスの初期値は締める方向へ動いた。

FF
キーボードから手を離し、口でエージェントを回す──OpenAIがCodex/Workに載せた「全二重」音声操作と、その速さが呼ぶ取りこぼし

キーボードから手を離し、口でエージェントを回す──OpenAIがCodex/Workに載せた「全二重」音声操作と、その速さが呼ぶ取りこぼし

OpenAIがChatGPTデスクトップに音声操作を配信。全二重のGPT-Liveで、声だけでCodex/Workの複数エージェントを回せる。段取りは速くなるが、口頭指示の曖昧さと文字起こしのズレという新しい取りこぼしも。

FF
Fable 5級の知能を、据え置きの値段で回す──Claude Opus 5が「長時間エージェントのOpus」を作り直した

Fable 5級の知能を、据え置きの値段で回す──Claude Opus 5が「長時間エージェントのOpus」を作り直した

Anthropicが7月24日にClaude Opus 5を公開。据え置きの$5/$25で公開最上位Fable 5に迫る性能を打ち出し、Claude Codeの既定Opusも置き換え。料金・ベンチ・エージェント運用の変化と留保点を整理します。

FF