The Tower Keeps Rising

Armin Ronacher

塔は伸び続ける

原文は Armin Ronacher により に公開されました。 このブログを購読する

バイブコーディングされたソフトウェアの中には、どこかランダムで予測不能な変わり方をするものがあると感じている。そのことが、ブリューゲルの《バベルの塔》を思い起こさせた。あの絵には、すでにかなり混沌としたバベルの塔が描かれている。この物語は通常、驕りや野心、そしてなぜ人々がもはや同じ言語を話さなくなったのかという話として語られる。しかしそれは、技術の進歩を支える一体性についての物語でもある。

物語は、技術の刷新から始まる。

「さあ、れんがを作って、よく焼こう。」彼らは石の代わりにれんがを、漆喰の代わりにアスファルトを用いた。

彼らはそれを、文明をかけた事業のために使う。

「さあ、我々のために町と塔を建てよう、その頂が天に届くほどに」

しかし神がその状況を見たとき、彼が気にかけたのは煉瓦ではなかった。

「民は一つで、皆同じ言葉を持っている。……そうなれば、彼らが企てることは何一つ妨げられなくなる。1

彼らの力の源は協調にある。彼らは言語を共有しており、その共通言語によって、誰一人として単独では成し得ないものを力を合わせて築くことができる。神は煉瓦やその作り方の知識を奪ったのではない。奪ったのは互いを理解する能力であり、それによって建設は止まったのだ。

AI支援によるプログラミングとは、より良い道具を手に入れることで、より野心的なソフトウェアを構築できるようになるということだ、という魅力的な考えがある。個人のレベルでいえば、それは確かにその通りだ。エージェントを得た開発者が、コードベースを変更する能力が劇的に高まることは疑いようがない。しかし大規模なソフトウェアプロジェクトが、これまで個人がどれだけ速くコードを生み出せるかというだけで制約されてきたことはない。制約となってきたのは、変更しようとしているシステムについて、人々がどれだけ理解を共有できるかという点なのだ。

ソフトウェアプロジェクトにおける共通言語とは、英語やPythonのことではない。それは、概念が何を意味するのか、境界がどこにあるのか、どの不変条件が重要なのか、誰が何を所有しているのか、そしてなぜシステムが今のような形をしているのか、といったことについての共通理解のことだ。この言語が一箇所にきちんと書き残されていることはめったにない。それはドキュメントやコードの中に部分的に宿っているが、コードレビューや会話、議論、そして変更内容を誰かに説明しなければならなかった経験の中にも生きている。

エージェントが登場する前は、この共通理解の一部は摩擦によって保たれていた。もし私があなたのストレージ層を変更したいと思えば、通常はあなたのコードを読み、質問をし、場合によってはそのサービスに依存している別のチームと調整する必要があった。これは時間がかかることだったし、その遅さの多くは無駄だったが、すべてが無駄だったわけではない。その一部は、あなたの理解が私のものになる過程であり、私たち二人が、システムがどのように動いているかについての認識が今なお一致しているかを確かめる過程でもあった。この摩擦が、人々を同期させていたのだ。

エージェントは、その摩擦の多くを取り除いてしまう。私はエージェントにOAuthの追加を頼み、あなたはキャッシュの追加を頼み、別の誰かはデータベースを一から作り直してUIをピンクにするよう頼むことができる。それぞれの変更は、単独で見れば理にかなっているかもしれない。コードはコンパイルでき、テストは通り、説明はいくらでもその場で生成される。私たちは誰も、互いに話す必要すらないし、かつてなら変更を通じて否応なく学ばなければならなかった共有モデルの一部を身につける必要すらないのだ。

前にも何度も言ってきたように、痛みを感じるのはエージェントではなく、人間だけだ。エージェントは今や、以前なら他の人を必要としたであろうシステムの領域や、人間なら反発を起こしたであろうコードベースにおいても、私たちが手を加えることを可能にしてしまう。

大規模化したバイブコーディングのプロジェクトを見ていると、コードベースがバベルと化すのは、誰も意思疎通ができないからではなく、誰も意思疎通をする必要がないからだと気づく。すべての開発者が、塔の片隅を説明し、頼まれた通りの局所的な変更を加えてくれる、疲れ知らずの翻訳者を手にしている。変更は次々と取り込まれ続ける。その一方で、人間同士が一緒になってそれらについて思考するための建築的な言語は、消えていくのだ。

しかしこれは聖書の物語とは違う。バベルでは、共通言語の喪失が建設を止めた。だがAI支援によるエンジニアリングでは、共通理解がすでに崩壊した後でも、建設は続けることができる。すぐに目に見える失敗が起きないことこそが、この状況を奇妙で、少し眩暈がするようなものにしている。塔は倒れない。だから私たちは、何が失われたのかに気づかない。ただ塔は、なおも高くそびえ続けるのだ。

この記事は「muse-spark-1.2-contributor」を使用して翻訳されました。

コメント