効率性のパラドックス: ソフトウェア開発を容易にするたびに、私たちは指数関数的により多くのソフトウェアを書くようになった Addy Osmani氏(Google Cloud AIディレクター)による記事。「効率化すると需要が減ると予測しがちだが、実際には潜在需要が顕在化する」「ソフトウェアの歴史は抽象化レベルの上昇であり、今もその延長線上にいる」といった主張が見事に言語化されていました。
前者(需要はむしろ増える)については、例えば次のように語られています。
下がっているのは「コードを速く書けるようになる」という障壁だけではない。「ソフトウェアで解決することが経済的に割に合う問題の種類」が変わりつつあるのだ。 [...] そのコストを10分の1に下げれば、採算の取れるプロジェクトが爆発的に増える。
私自身もこのブログや個人的なツールをバイブコーディングするようになったのは、まさに「潜在需要が顕在化」したと言えます。
後者(抽象化)については、例えば次のように語られています。
私たちは同じ光景を以前にも見たことがある。ただ、もっと小さな領域での話だった。アセンブリからC、Pythonへ、そしてフレームワーク、ローコードへ。あらゆる抽象化レイヤーが同じパターンをたどってきた。どれも「これで開発者の数は減る」と言われた。だが実際には、どれもがより多くのソフトウェアを生み出すことを可能にしただけだった。
私がプログラミングに入門した2000年代でも、既に高度に抽象化されていました。抽象化レベルのかなり上の方から入門した私は、基礎が弱いことへの不安があると同時に、そのことがかえって野心的な挑戦をしやすくもしていました。これは現在のバイブコーディングでも似たようなことが起こっていると思います。
最後の方で、私たちが問うべきはこうであると語られていました。
本当の問いは、ボトルネックが「これを作れるか?」から「これを作るべきか?」へと移行した世界に、私たちが準備できているかどうかだ。それは根本的に異なる問題空間であり、根本的に異なるスキルを必要とする。