Copilotの基盤をAIエージェントでRustに移植 130万行のコードに海外で賛否

姉妹サイトの新着

他サイトの新着

Microsoftは、GitHub Copilotなど自社製品を支えるランタイムエンジンを、43万行のTypeScriptからRustへとAIエージェントを使って移植したという。128件のPRに分けて段階的に進め、既存のE2Eテストで都度検証したとされ、最終的な行数はテストを含め約130万行(本番コード83万2378行、ユニットテスト約46万9000行)にのぼる。Hacker Newsではこの手法への評価が割れ、Microsoft製品で見られる不具合を「バイブコーディングの証拠」と揶揄する声がある一方、行数の内訳を巡る勘違いの訂正や、なぜGoでなくRustが選ばれたのかという疑問、巨大な単一ファイルの是非をめぐる技術論争にまで話が広がった。

マイクロソフト、Copilotランタイムをエージェントで12万ドルかけてRustに移植

出典: theregister.com / 元記事はこちら

2 海外の名無しさん 2026-09-20 10:37
わざわざ『バイブコーディングでやってます』と言われなくても分かる。VS2026にはとんでもない機械翻訳丸出しのローカライズが入ってるし、タスクマネージャーは最近CPU使用率が正しく表示されなくなった(数値が固まったまま)。エクスプローラーは特定のフォルダで「読み込み中」アイコンが永遠に回り続ける。まだまだ他にもある!
12 海外の名無しさん 2026-09-20 12:00
>>2 「エクスプローラーが特定フォルダで読み込み中アイコンを出し続ける」→ Nautilus(Linuxのファイルマネージャ)は10年前からその機能があったよ。やっと追いついたようで何より。
13 海外の名無しさん 2026-09-20 11:15
>>2 『バイブコーディング』と『普通のコーディング』の境界線はもう動いてしまった。バイブコーディングって本来は、指示した本人が出力を理解していない状態を指す言葉のはずだ。初期のモデルの頃から自分は基本的なタイピング作業をAIにやらせていたけど、それは自分で打つより楽だったからで…
14 海外の名無しさん 2026-09-20 11:59
>>2 仮にバイブコーディングじゃなかったとしても、AIが無くたって彼らは元から質の低いコードを書けてたよ。
4 海外の名無しさん 2026-09-20 11:01
『エージェントがTypeScript43万行をRustの本番コード80万行に変換した』→ 増えた40万行分は、たぶんエージェントがあらゆる場所に付けまくったコメントだろうね
21 海外の名無しさん 2026-09-20 11:37
>>4 83.2万行 + テストコード46.9万行だよ。
6 海外の名無しさん 2026-09-20 11:21
Copilotチームの開発者Andreaの投稿にコメントしてみた、80万行という数字について。128件のPRに分けて段階的にリリースし、各ステップで既存のE2Eテストを新しいコードに対して実行していたとのこと。合計は約130万1378行のRust。内訳は本番コードが83万2378行、ユニットテストが約46万9000行で、合わせて約130万行。「本番コードだけで83万2378行のRustです。80万行超というのは本番コードのみの数字で、ユニットテストはさらに別途46万9000行あります」と彼女は答えていた。(出典: https://x.com/acolombiadev/status/2100660224298193081)
22 海外の名無しさん 2026-09-20 11:29
>>6 『83.2万行の半分はほぼテストだと彼女は答えている』って、いや違うでしょ。その引用、あなたのまとめと真逆のことを言ってるよ。
33 海外の名無しさん 2026-09-20 11:34
>>22 本当だ、直しておいた。
7 海外の名無しさん 2026-09-20 10:47
誰かPythonエコシステム全体をエージェントでGIL無しPythonに移植してくれる会社が現れないかな、とまだ期待してる。
23 海外の名無しさん 2026-09-20 11:10
>>7 実行速度が目的なら、この段階ではもう必要なライブラリを別の言語に移植する方が早いと思う。
24 海外の名無しさん 2026-09-20 10:49
>>7 GIL無しPythonをかなりベンチマークしてみたけど、グリーンレットの方がずっと速かった。GIL無しPythonは色々なPythonのロックに引っかかって、結局遅い。
8 海外の名無しさん 2026-09-20 11:35
なんでGoじゃなくてRustが選ばれたんだ?
25 海外の名無しさん 2026-09-20 11:49
>>8 『GitHub Copilotや増え続けるMicrosoft製品を支えるソフトウェアエンジン』という位置づけだから、C/C++のコードベースと連携しやすいからじゃないかな。あくまで当てずっぽうで、実際のところは分からないけど。
9 海外の名無しさん 2026-09-20 11:49
そろそろ本気でRustを使うべきかもと思い始めてるけど、実際どこに使えばいいのか全然分からない。
11 海外の名無しさん 2026-09-20 10:50
『agentically(エージェント的に)』って言うのやめてもらえない?
15 海外の名無しさん 2026-09-20 12:02
>>3 見よ、人間が書いた34,000行のView.javaを。確か今は少し削られたはずだけど、以前はもっと長かった記憶がある。(出典: Android公式リポジトリ)
17 海外の名無しさん 2026-09-20 10:41
>>3 最近、あるバイブコーディングのプロジェクトで約6万行・3MBの.cppファイルを見た(正直ちょっとゾッとした)。それで動いてること自体が驚きだけど、実際動いてるらしい。人間向けとは到底言えないし、LLMにとってももっと分割されていた方がメリットは大きいはずだ。
30 海外の名無しさん 2026-09-20 10:51
>>17 それは①初期のLLMによるバイブコーディングか、②ユーザーがLLMに部分ごとにコードを書かせて手作業でつなぎ合わせる『手動バイブコーディング』のどちらかで、しかもプログラマーが初心者だったパターンだと思う。後者は自分にも経験があって、2000行くらいまで行ったところで『これはスクリプトの規模を超えてる』と気づいて分割し始めた。いずれにせよ、今の最先端のLLMエージェントにこれをやらせるのはほぼ不可能なはず。
31 海外の名無しさん 2026-09-20 11:37
>>17 自分は10年前にも3万行のcppファイルを見たことがある(World of Warcraftのサーバーエミュレータで、ボス敵のゲームロジック部分)。大規模なソフトウェアではそれなりに普通のことで、10万行でも珍しくないと聞いたことがある。だからこれがそんなにLLM特有の話なのかは分からない。
18 海外の名無しさん 2026-09-20 11:32
>>3 問われるべきは『なぜそのファイルをそこまで肥大化させたのか』ということだと思う。一体どんなエンジニアが担当してたんだ。自分は300〜400行を超えるファイルを見るだけで嫌になるタイプなのに。
32 海外の名無しさん 2026-09-20 11:49
>>18 きちんと整理されていれば、1ファイルの行数なんて本当はどうでもいい。プロのプロジェクトなら300〜400行なんてごく小さなファイルだ。ファイル数を増やして分割したからといって管理が魔法のように楽になるわけじゃなく、むしろ文脈が分断される。おまけに不要な抽象化を生みがちだ。

他サイトの新着

19 海外の名無しさん 2026-09-20 10:40
>>3 『一体どの人間が担当してるんだ』というけど、あのツールを一度でも使ったことがあればそんな疑問は出ないはず。どう見ても完全にバイブコーディングされてるんだから。
20 海外の名無しさん 2026-09-20 10:37
>>3 各関数のドキュメントは、もう小論文並みの長さだった?
26 海外の名無しさん 2026-09-20 12:04
『agentically』はagentic(主体性を持つ、という意味の形容詞)の副詞形だよ。さっきのは皮肉のつもりだったんだろうけど、実はAI以前からある正当な単語なんだ。
27 海外の名無しさん 2026-09-20 11:51
おそらく長時間のエージェントセッションを回すための動的なワークフローを使って移植したんだろう。Anthropicが以前BunをZigからRustに移植したときと同じやり方で。人間が介在するワークフローを最小限にして、エージェントが介在するワークフローを最大化する、というわけだ。
28 海外の名無しさん 2026-09-20 11:51
つまりClaude Codeを使ったってことだね。
29 海外の名無しさん 2026-09-20 11:38
>>13 その返信は元のコメントの意図を誤解してると思う。あのクオリティの低さを見れば、Microsoftの開発者たちが自分たちの出力を理解していないのは明らかだよ。
35 海外の名無しさん 2026-09-20 11:50
>>31 cppの世界では、複雑なプロジェクトだとそれは確かに割と普通のことだね。
36 海外の名無しさん 2026-09-20 11:56
>>32 それには反対だな。分割した方が可読性もメンテナンス性もテストのしやすさも上がる。全部が1ファイルにまとまっているからといって文脈を把握できるとは限らない。3000行もあれば、下まで読み進めた頃には冒頭に何が書いてあったか忘れてしまうはずだ。
37 海外の名無しさん 2026-09-20 12:07
>>34 特に『プロトタイプ』や『PoCだ』と伝えると、それを口実に巨大な単一ファイルやその他の雑なコーディングを平気でやり出す、というのは経験上よくある。

この話題の背景と論点

「バイブコーディング」は、生成AIの出力を書いた本人が理解していない状態を指す俗語で、スレでもその線引きを巡る議論があった。今回の移植は43万行のTypeScriptを83万2378行の本番用Rustコードに置き換えたもので、テスト分を含めると合計は約130万行に達する。この内訳を巡っては当初「半分がテスト」という誤読が広まり、後から投稿者自身が訂正する一幕もあった。移植コストとされる12万ドルという金額は、通常なら相応の人手を要する作業としては際立って安く、AIエージェントによる大規模リファクタリングの実例として注目されている。なぜGoではなくRustが選ばれたのかという疑問には、C/C++資産との相互運用性を理由に挙げる推測が出た程度で、公式な説明はスレ内では示されていない。また巨大なソースファイルの是非を巡る議論では、AI以前からWorld of Warcraftのサーバーエミュレータなど大規模プロジェクトで数万行規模のファイルが存在した例が挙がり、必ずしもAI特有の問題ではないという指摘もあった。

※本記事は5ch(Hacker News)スレッド「Microsoft agentically ports Copilot runtime to Rust for $120K」より抜粋・要約して構成しています。

この記事のリアクション

他サイトの新着

まだコメントはありません。

コメントする

誹謗中傷・個人を特定する書き込みは削除対象です。投稿は承認後に表示されます。

相互リンクサイト新着記事