この分野の声が大きい人たちと同じように、私も生成AIシステムがソフトウェア開発にどのような役割を果たすのかについて大きな関心を持っています。LLM(大規模言語モデル)の登場は、アセンブラから最初の高水準プログラミング言語への移行と同じくらい、ソフトウェア開発を大きく変えると思います。その後に開発された言語やフレームワークは、抽象化のレベルや生産性を向上させましたが、プログラミングの本質に同じレベルのインパクトを与えるものではありませんでした。しかし、LLMには最初の移行と同程度のインパクトがあると思います。しかも、単に抽象化のレベルを上げるだけでなく、「非決定的なツールでプログラミングするとはどういうことか」という問いを私たちに投げかけています。
私はまだ最高の生成AIツールを本格的に使ったことはありませんが、友人や同僚たちの体験談を聞くたびに、非常に興味をそそられています。これは抜本的な変化であると確信しています。プロンプトで機械と対話するのは、Rubyでプログラミングするのとはまったく別物であり、その違いはFortranとアセンブラの違いと同じくらいです。これは抽象化のレベルが飛躍しただけではありません。Fortranで関数を書いたときには、100回コンパイルしてもまったく同じバグが必ず現れました。しかし、LLMは非決定的な抽象化を導入しているため、プロンプトをgitに保存しても、毎回同じ振る舞いが返ってくるとは限りません。同僚のBirgittaが言うように、私たちは抽象化のレベルを上げているだけでなく、同時に非決定性という横方向にも進んでいるのです。
私たちは仕事でLLMの使い方を学びながら、こうした非決定性とうまく付き合う方法を見つけなければなりません。この変化は劇的なものです。私はワクワクしています。残念ながら失うものもあるでしょうが、私たちがまだ理解できていない新たな価値も得られるでしょう。こうした非決定性の進化は、私たちの職業の歴史において前例のないものです。