プログラミング・AI技術

【Rust移植】BunのRust全書き換えにAIを投じた結果が悲惨すぎる「ボローチェッカーとAIの死闘」「10万トークン溶かしてclone乱発」「Zig/GoとRustの相性差」

投稿日時: 2026/07/27 20:12

■ 概要・編集部サマリー

1. 【背景・検証】超高速JSランタイム本ニュース(Zig/C++製)をRustへ完全移植する実験にて、Claude 3.5等のAIコーディングエージェントを大規模投入した開発レポートがHacker Newsで話題沸騰。 2. 【焦点・AIの壁】Rustの厳格な所有権とライフタイムにAIが屈し、コンパイルエラーの自動修復ループで10万トークンを消費。`unsafe` や `.clone()` を乱発する非イディオマティックなコードが量産された。 3. 【評価・言語選定】言語仕様がシンプルなZigやGoはAI自動生成と極めて相性が良い一方、高レベルな型の抽象化とコンパイラ制約が厳しいRustはAIにとって最難関言語であるという開発者のリアルな知見が共有された。

■ BunのZig実装からRustへのAI自動移植実験と10万トークン問題

超高速なレスポンスと Node.js 互換性で支持を集める JS/TS ランタイム Bun ですが、エコシステムの拡大とコードベースのさらなる安全性・保守性向上を目指し、コア部分を Zig から Rust へリプレイスする検証実験が実施されました。

膨大な既存コードの書き換え速度を向上させるため、開発者は最新の LLM コーディングエージェントを活用し、自動変換とコンパイルエラーの修復を試みました。しかし、生成されたコードのコンパイルが通らず、エラーログをフィードバックする修復ループだけで10万トークン以上の費用が消費される事態となりました。

■ ボローチェッカーとの死闘と「非イディオマティックRust(Un-idiomatic Rust)」

AI が直面した最大の障害は、Rust 言語の核である所有権、借用、およびライフタイム注釈のコンパイラ制約でした。

コンパイルエラーを無理やり解消しようとした AI エージェントは、メモリコピーを発生させる `.clone()` の乱用、`unsafe` ブロックの多用、および `Rc>` 構造の乱立といったコードを出力しました。コンパイルは通過するものの、Rust の本来の強みであるメモリ効率や実行パフォーマンス、安全性を根本から損なう非イディオマティックなコードが量産される結果となりました。

■ LLM時代の言語選定:Zig / Go vs Rust のAI適性アセスメント

本実験は、AI 補助エンジニアリングにおけるプログラミング言語ごとの「AI適性」に関する重要な知見をもたらしました。

言語仕様が極めてシンプルで誰が書いても同様の構造になりやすい Go や Zig は、LLM による正確な自動コード生成と高い相性を示します。一方、高度な型の抽象化と厳格な所有権グラフを要求する Rust は、人間のソフトウェアアーキテクトによる事前設計が不可欠であり、機械的な AI 変換には向かないことが実証されました。

海外掲示板の反応・まとめ

編集部サマリー:

■ 超高速JavaScriptランタイムBunのコア部分をZig/C++からRustへAIを使って自動移植しようとしたレポート。Rust特有のボローチェッカーにAIが苦戦し、10万トークンを消費してコンパイル修復ループに陥った経緯とプログラミング言語のAI適性について大論争となっています。

名無しさん@Rust信者:

BunをZigからRustにAIで全書き換えしようとして、ボローチェッカー(Borrow Checker)の怒りのコンパイルエラーにAIが発狂して10万トークン溶かしたの草すぎるだろw

名無しさん@Zigファン:

>>2 だから言ったろ!Zigはメモリレイアウトと文法がシンプルだからAIも素直で綺麗なコード出せるけど、Rustの所有権とライフタイム指定('a)はAIが一番苦手な分野なんだよ。

名無しさん@フルスタック民:

コンパイルを通すためだけにAIが `.clone()` と `Rc>` と `unsafe` ブロックを全域に散りばめた悲惨な非イディオマティックRust(Un-idiomatic Rust)生成したのほんと大爆笑したわ。

名無しさん@Go推しエンジニア:

>>4 AIコーディングエージェントにコード書かせるなら、文法がシンプルで誰が書いても同じコードになるGo言語が最強に相性良いっていう証明だな。

名無しさん@インフラエンジニア:

コンパイラのエラーログをそのままAIのコンテキストにぶち込んで自動修復させようとしたら、修復するたびに別の参照エラーが生えて無限ループ入ってトークン代が吹き飛ぶ地獄絵図。

名無しさん@Rust信者:

>>6 ライフタイムとメモリの所有権設計は、最初に人間がシステム全体を設計してバウンダリ決める部分だからな。そこをサボってAIに全投げしても破綻するだけだわ。

名無しさん@コード書け:

既存のC++やZigのポインタ操作のノリをそのままRustに1対1で直訳させようとするアプローチ自体が間違いの元。RustにするならRustの考え方で書き直さないと意味がない。

名無しさん@AIエンジニア:

>>8 AIが得意なのは関数単位のアルゴリズム生成とか型定義の補完であって、プロジェクト跨いだメモリ管理モデルの再構築はまだ手動で設計してやる必要があるな。

名無しさん@海外ニキ:

開発者の Jarred Sumner がBunをZigで作った理由(C言語並みの透明性と高速なコンパイル速度)が改めて再認識された良いケーススタディだわ。

名無しさん@フルスタック民:

>>10 C/C++のコードをRustに機械変換した結果 `unsafe` だらけになったら、Rustにするメリットゼロだしなw

名無しさん@コード書け:

AI時代における言語選定の基準が『人間にとって書きやすいか』だけじゃなくて『AIが正確なコードを生成しやすいか(AIフレンドリーか)』になっていくのめちゃくちゃ興味深い。

名無しさん@Rust信者:

>>12 でも見方を変えれば、世界一厳格なRustのコンパイラがあるからこそ、AIが吐いた潜在バグを事前コンパイルで確実にブロックできたとも言えるぞ。

名無しさん@海外ニキ:

10万トークンのAPI費用を払って得た『所有権設計なしでAIにRustを書かせるな』という教訓、全テック企業の開発チームが胸に刻むべきだわ。

名無しさん@まとめ総括:

AIツールの万能感に頼るのではなく、各言語の強みとAIの特性を理解して人間とAIが適切に役割分担することが成功の鍵だな。