LadybirdブラウザがRustを採用——AIエージェントが2週間で2万5千行のC++を移植した話

元記事を読む
キュレーターコメント

「AIに丸投げ」ではなく「人間が設計してAIが実装する」という協働モデルの説得力ある実証例として、AIを使いこなしたい開発者全員に読んでほしい記事。特にレガシーコードの移植や言語マイグレーションを検討しているエンジニアに刺さるはず。

概要

独立系ブラウザエンジン「Ladybird」の開発者Andreas Klingが、AIコーディングエージェントを使った大規模Rust移行の実例を公開した。もともとAppleエコシステム外でのSwiftサポート成熟を数年待ち続けたが、方針転換してメモリ安全言語としてRustを選択。その第一弾として、JavaScriptエンジン「LibJS」のレクサー・パーサー・AST・バイトコード生成器を丸ごとRustに移植した。

注目すべきは移植の進め方だ。KlingはClaude CodeCodexを使ったものの、「自律的なコード生成ではなく、人間主導の作業」だったと明言している。何をどの順序で移植するか、Rustコードがどうあるべきかを自分で決め、数百の細かいプロンプトでエージェントを誘導した。成果は約2万5千行のRust、所要期間は約2週間。手作業なら数ヶ月かかる作業量だ。そして最も重要な点として、C++とRustの両パイプラインでバイトレベルで同一の出力を確認し、リグレッションゼロを達成している。

この成功を支えたのは「test262」という質の高いJavaScriptの適合テストスイートと、既存の信頼できるC++実装との出力比較だ。Simon Willisonが「conformance suiteの存在がagentic engineeringを安全な賭けにする」と評したのは的を射ている——AIエージェントを大規模な本番コードに投入するとき、テストの充実度がそのまま移植の信頼性に直結する。テストを書き続けることの価値を、改めて突きつけられた事例だと思う。