コードは「成果物」から「仕様」へ LLMが変えるソフトウェア開発の意味
Code as an Artifact

エージェント型LLMの登場により、「コード」の意味が変わりつつある。かつてソフトウェア開発の最終成果物はコードだったが、今やLLM自身がコードを生成するため、残るのは仕様であり、コードは要求に応じて何通りにも再生成できる。イーロン・マスク氏は「ソースコードはアセンブリ言語のようになりつつある。次のステップはソースコードを廃止し、AIで直接効率的なバイナリを生成することだ」と述べた。しかし著者は、プログラミング言語は自然言語の曖昧さを減らすために存在しており、なくなることはないと主張する。LLMにプログラミングを移せば、プロンプトやコンテキストが新しい「コード」になるが、それはより高次の抽象化に過ぎない。
「ソースコードは、まさにアセンブリ言語のようになりつつある。次のステップは『ソースコード』を完全に廃止し、AIで直接効率的なバイナリを生成することだ」
- paretolaw
私の意見を2セントだけ。
エンジニアリングについてのセールスマンの話を聞くな。彼が最近やったことで信頼性を証明していない限りは。その人が大富豪でも、信頼性は買えない。
- cadamsdotcom
境界線はコードと仕様の間ではない。
境界線は、決定性を手放すところにある。
仕様から毎回同じコードを決定的に生成できるなら、おめでとう!でも、それは高水準言語を作ったに過ぎない。
LLMは、現実世界の様々な曖昧さを決定性の領域に持ち込むのに役立つ。そして、それを行うために私たちが使うツールはコードだ。
仕様は、時間とともにリスクとなるあらゆる種類の外部性をコード化できない。例えば、UIの見た目はファッショントレンドの影響を受ける。ユーザーは古いバージョンのUIに満足しているかもしれないのに、仕様から再生成したら、あらら!もうアクセシビリティが失われている!さらに、OKボタンが、仕様で固定されていなかったため存在しないイベントハンドラにマップされる文字列に接続されてしまった。おっと!
これがコードの問題ではないことがお分かりいただけるだろう。実際に重要なのは、コードが所望の結果を決定的な方法でコード化し、これまでに発明された他の何よりも効率的にそれを行う方法だ。
- jbstack
LLM以前は、コードが成果物であり、仕様がコードであり、人間がコンパイラだったと言うこともできる。LLMが変えるのは速度だけだ。