AI「Claude」を使って開発ツールの「Bun」の53万行のZigコード全てをRustへ書き換え、Zig作者もブログで反応

JavaScriptランタイム「Bun」の開発チームが、AIコーディング支援ツール「Claude Code」を活用して進めていた、BunのZigコードをRustへ書き換える全面的な移植作業が完了したと発表しました。約53万行のZigコードがRustへ移植されたことで、メモリ管理に起因する不具合の削減が期待されています。
Rewriting Bun in Rust | Bun Blog
https://bun.com/blog/bun-in-rust

My Thoughts on the Bun Rust Rewrite - Andrew Kelley
https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.html
JavaScriptランタイムであるBunは、高速な実行環境に加え、パッケージマネージャーやバンドラー、テストランナーなどを1つにまとめたオールインワンの開発ツールです。Bunの初期バージョンは、開発者のジャレッド・サムナー氏によってシステムプログラミング言語「Zig」を使って1年かけて開発されました。
しかし、Zigで開発されたBunにはメモリ管理に起因するバグが多数発生しており、バグ修正リストがひどい状態になっていたとサムナー氏は語っています。そこでBun開発チームは、コードベース全体をZigからメモリ安全性に優れた「Rust」に移行することを決定しました。
今回の移行についてサムナー氏は「Zigそのものが問題だったとは思いません。Zigがなければここまで来られなかったでしょうし、私は常に感謝しています」と述べた上で、「ごく最近まで、Bunのようなプロジェクトにとってプログラミング言語の選択は一方通行の決定でした」と従来は実装言語の変更が現実的ではなかったと説明。移行を決断した最大の理由は、Rustのメモリ安全性によってBunで頻発していた種類のバグをコンパイル時に防ぐためであり、長期的な保守性や開発効率を重視したためだとしています。
サムナー氏によると、Bunには53万5496行ものZigコードが存在しているため、別の言語で書き換えるには少人数のエンジニアチームでも丸1年かかると考えられるそうです。その間はバグ修正、セキュリティ修正、機能開発は凍結されることになるため、「コードベースの全面的な書き換えは歴史的に見ても最悪のアイデア」とサムナー氏は語りました。
そこでサムナー氏は、「Claude Fable 5」のプレリリース版を活用しながら、BunをRustで書き直せるか1週間かけてテストしました。最初はうまくいくとは思っていなかったそうですが、数日後にはテストスイートの大部分が合格し始め、新しいRustコードが元のZigコードベースとかなり一致していることが判明しました。最終的に、AIコーディング支援ツールのClaude Codeを使って約50種類のワークフローを組み込んで11日間かけて連続的に実行することで、AIによる変換結果をレビュー・修正しながらBunをRustで書き直すことに成功しています。サムナー氏は「コードベース全体を熟知したエンジニアチームでも1年かかる作業だったでしょう。しかし、エンジニア1人がClaude Fable 5を使用し、Claude Codeを綿密に監視することで、わずか11日間で、すべてのプラットフォームでテストスイートの100%クリアを達成しました」と述べています。

BunがZigからRustに全面移行したことについて、Zigの作者であるアンドリュー・ケリー氏も自身のブログで見解を公開しました。ケリー氏によると、Bunのコードベースに見られるプログラミング手法はハックの上にハックが重なり、その場しのぎのアサーションを乱用し、何よりも振り返りやバグ修正、技術的負債の解消にほとんど時間をかけずに、次から次へと機能を無謀に急いで追加しており、Zigチームは恐怖を感じていたそうです。そのため、ケリー氏はAnthropicによるBunの買収時には「安心した」と述べ、Rustへの書き換えが発表された際には「大喜びした」としています。その上でケリー氏は、「Bunブログでは、Zigのコードを熱心にファジングしていたことを示唆していますが、私たちが電話で話した際、Bunチームは何もファジングしていないと述べていました」と、Bun側に問題があったと指摘しています。
一方、Hacker Newsでケリー氏のブログが話題になった際には、サムナー氏が登場して反論しています。サムナー氏は実際にファジングテストを継続的に実施していた証拠として関連コードへのリンクを示した上で、「『Bunの開発者がケリー氏と電話してファジングテストを一切行っていないと述べた』という指摘は完全に事実と異なる」と主張しました。
Bunは今後、Rust版をベースに開発が継続され、Bun v1.4では、Bunの高速化・軽量化・メモリ使用量の削減に加え、今後の安定性向上に非常に役立つ強力なツールが開発チームに提供されるとのこと。今回の事例は、AIコーディング支援ツールを活用してコードベースを別のプログラミング言語へ移行する作業をわずか11日間で達成した事例であり、サムナー氏は「エンジニア1人が今日できることは、1年前と比べてはるかに多くなった」と語っています。
・関連記事
「Claude Cowork」の用途はソフトウェア開発が8.7%で大半はスライド作成などの事務作業、コーディング以外にもAI利用が広がっている実態が明らかに - GIGAZINE
Claude DesignとClaude Codeの連携が強化されてコーディングからデザインまでAIをバリバリ活用可能に - GIGAZINE
日常的なコーディング作業でClaudeやGPTからローカルAIモデルに置き換えた事例まとめ - GIGAZINE
コーディングAIエージェントの支援を受けてソフトウェアを開発する手法「エージェントエンジニアリング」とは? - GIGAZINE
AIコーディングツールは生産性を19%も低下させているという調査結果、AI出力の評価・手直し・再出力などで無駄な時間が大量発生か - GIGAZINE
・関連コンテンツ
in AI, ソフトウェア, Posted by log1e_dh
You can read the machine translated English article Using the AI 'Claude,' all 530,000 lines….







