「技術スタックは最初によく選ばなきゃ。一度決めたら変えられないから。」スタートアップから大企業まで、これは真理として語られてきました。

ところが2026年5月、Bunがその公式を覆しました。JavaScriptランタイムのBunが、Zigで書かれた約100万行のコードをわずか6日でRustに書き換えたんです。人間のエンジニアチームではなく、AIコーディングエージェント(Claude Code)が主導して。

3秒まとめ
言語 = 永久決定という常識 Bunが100万行を6日で AIが生んだ可逆性 技術スタック選択の新ルール

みんながそう信じていた

技術スタックの選択が重かった理由は明確でした。言語を変えるためには全コードを書き直し、チーム全員が新しい言語を学び、既存のライブラリを移行しなければならなかったんです。McKinseyのデータによると、Fortune 500企業のソフトウェアの70%は20年以上前のレガシーだそうです。 移行コストが高すぎて手が出せない。言語の選択は「取り消せない決断」の代名詞でした。

Vagrantの創業者 Mitchell Hashimoto の宣言

「プログラミング言語は昔はLOCK INでした。でも、だんだんそうじゃなくなってきていますよ。」

でも数字は正反対を示していた

2026年5月14日、Bunは約2,188ファイルを修正し、100万行以上のRustコードを追加してZigバージョンにさよならを告げました。「公開されたAIコード転換の中で過去最大規模」との評価が出ました。

99.8%
既存テスト通過率
6日
100万行の移行期間
3〜8MB
バイナリサイズの削減

Bun の創業者Jared Sumnerは移行後にこう語りました: 「もう何ヶ月もコードを自分で入力していません。」 Claude Codeがコード作成、テスト実行、バグ修正のループをAIが主導するということです。

これを可能にした背景があります。Anthropicが2025年12月にBunを買収した後、ZigのノーAIポリシーがBunのAI中心の開発方針と衝突したんです。 BunはZigのフォークを維持する代わりにRustへの全面移行を選択し、その移行をAIエージェントが実行しました。Claude CodeでClaude Codeのランタイムを書き直したんです。

同様のことが他でも起きています。Simon Willisonがあるカンファレンスで出会った開発者は、AIコーディングエージェントを使ってレガシーのiOS・Androidアプリを完全にReact Nativeに書き直したそうです。 なぜReact Nativeだったのかと聞いたら、答えはシンプルでした: 「気に入らなければ、またネイティブに戻せばいいじゃないですか。」 技術選択を「取り消せるもの」として扱う姿勢 — AIの前後でここが変わったんですよね。

AI以前の移行AIエージェントによる移行
所要期間数ヶ月〜数年数日〜数週間
コスト(2万行基準)チームの数ヶ月分工数約$150
リスクヒューマンエラー、燃え尽き自動テスト検証ループ
後戻り事実上不可能可逆的 — 再移行も可能

技術戦略として何が変わるんですか

HashimotoはRustについてこう言いました: 「Rustは消耗品です。役に立つ間は使って、そうでなくなったら捨てればいい。」 技術スタックを「一生付き合うパートナー」ではなく「今一番合うツール」として見られるようになったということです。

この変化はAIコーディングエージェントが生んだ経済性から来ています。うまく設計されたマルチエージェントシステムはコード移行を数ヶ月から数日に圧縮できます。 コードベース構造分析、テストフィクスチャ生成、コード変換・検証、リファクタリングをエージェントが並列処理すれば、以前は移行を躊躇させていた認知負荷がなくなります。

もう一つ重要な点があります。AIコード移行は単純な翻訳じゃないんです。Bunのケースでは、Rustのメモリ安全性が自動的にuse-after-free、double-freeといったバグのクラスを排除しました。 AIがコードを書き換えながら、移行先言語の特性も一緒に取り込んだんです。移行が単なる書き直しではなく、言語の強みを吸収するアップグレードになるんですよね。

AIコードマイグレーションの始め方

  1. モジュール単位でスコープを分割する
    一度に全部変えようとしないでください。複雑なコードベースを単一エージェントに丸ごと任せると、動作不良、機能漏れ、バグが出てきます。 明確な入出力があるモジュール単位で範囲を決め、各モジュールのテストを先に準備しましょう。
  2. 4段階エージェントパイプラインを組む
    ① コードベース分析エージェント(依存関係・コールチェーン把握) → ② テストフィクスチャ生成エージェント(実際の入出力キャプチャ) → ③ 変換エージェント(ユニット・回帰テスト検証) → ④ リファクタリングエージェント(コーディング標準整合). すべての段階に自動検証が必要です。
  3. テスト通過率を唯一のゲートにする
    Bunは99.8%のテスト通過を確認してマージしました。 「なんとなく動く」は基準になりません。数字で基準を決め、それをクリアするまで次に進まないこと。
  4. コスト比較を計算する
    2万行移行のAIコストは約$150です。 同じ作業を手動でやると数ヶ月のエンジニアリング時間がかかります。この差を次の技術決定のインプットにしましょう。
  5. 「取り消せる」を選択基準にする
    次の技術スタック選択の際、「AIで移行するのにどれくらいかかる?」を判断基準の一つにしてください。 モジュール境界が明確でテストカバレッジが十分なら、今日の選択が明日変えられる選択になります。

限界もあります

AIマイグレーションは万能ではありません。単一エージェントに複雑な移行を丸投げすると失敗します。 パフォーマンス最適化、セキュリティ強化、保守性の確保はAIが自動的に保証してくれるわけではありません。Bunの大規模な一括コミットについても「レビューが困難で隠れたバグがある可能性がある」という懐疑的な見方もあります。 丁寧に設計されたパイプラインと人間によるレビューは依然として不可欠です。

さらに深く掘り下げたい方へ

Not so locked in any more — Simon Willison HashimotoのコメントとReact Nativeリライトの事例を最初に共有した原文 simonwillison.net

Anthropic's Bun Rust rewrite merged at speed of AI — The Register 100万行移行の詳細な統計とSumnerのインタビュー全文 theregister.com

Agents for Legacy Code Migration — VirtusLab 4段階マルチエージェント移行パイプラインの詳細解説 virtuslab.com

What If Lock-In Doesn't Matter So Much Anymore? — Kottke.org 言語を超えてデータベース、クラウド、AIモデルにまで広がるlock-in議論 kottke.org

Why Bun is Rewriting in Rust — CosmicJS BunのRustリライトのパフォーマンスデータと技術的背景 cosmicjs.com