大規模言語モデル(LLM)を中心とした生成AIの出現に伴い社会が作り変えられつつある。個人的な感覚としてはAIベンダーがリリースする定期的なモデルの刷新は2023年のGPT-4から本質的な変化はないと思っていた。だが、2025年末からのClaude Codeを先頭にした性能向上や、多様な角度での機能の拡充などが、複合的に作用しあい、2025年末以降、本格的な動きとなっている。
我々にとって生成AIは最初の1、2年はチャットを通して新しい独白、つまり内面世界を拡張するものとして、半ば暗黙的な存在のように扱われてきた。しかし、APIやプラグインの充実により、スタンドアロン性が強かったWordやExcel、そしてコードエディタとも接続されるようになった。
独白の延長であったならば、AIの出力がどんなに優れていようともーー逆にハルシネーションを含んだものであったとしてもーーそれをどのように扱うかは単にユーザーの「やる気の問題」であった。しかし、仕事道具と直結されたならば、いよいよ避けて通るのが難しくなっていく。
そこで、本稿では、まずAIがプログラミングの何を解決しているのかを確認し、その上で私たちの中のなにが変わろうとしているのかについて考えてみることとしたい。
生成AIと言葉のパラダイム
生成AIが得意とするのは言語処理全般である。もちろん、生成AIはマルチモーダル化によって言語以外の形式も入出力として扱えるようになっている。だが、これは生成AIが言語以外を扱えるということを意味するものではない。マルチモーダルは言語以外のデータを連続的なベクトル列、すなわち言語と同構造として扱う技術の確立によって実現されている。それゆえ、生成AIが得意とするのは言語処理のみであると言っても差し支えない。
この言語処理にはもちろんプログラミング言語も射程内に置かれる。なぜならAIが学習しているものは言葉の順番と組み合わせからなるシンタックスであるからだ。シンタックスとは表面的には文法によって規定された言葉の配列のことである。だが、それだけではない。言葉と言葉がどのように結合するのかという問いには、単なる文法の枠組みだけではなく、パラダイム(=共有された常識)が不可分なものとして埋め込まれているのである。
例えば「SNSが人心を荒廃させる」のは近年ティーンエイジャーに対するSNS規制と共に、いくつかの国家で採用されつつあるパラダイムだ。このような言葉は「BeRealは盛らなくていいから気が楽」という日常会話と対応してもいる。これらが統計的なデータ量によって学習されるとき、生成AIは我々の社会のパラダイムをも学びとっていく。
これと全く同じプロセスで「atan2は2点間を結んだ線の角度を求める」ことを生成AIは知っている。数学的な真理も、言葉で定義されている以上はパラダイムであり、同様に「2つの引数を取るアークタンジェント」に多くのプログラミング言語でatan2という命名がされていることもまたパラダイムであるからだ。このような知識が言葉によって我々の間を媒介する以上、どんなものであれ学習は可能となってしまう。
プログラミングとは、作業者がある情報操作に対する展望を持ち、それを具体的なコードへと秩序化していく試行である。「試行」と書いたのは、秩序化を行うには必ず秩序化の対象となる混沌が存在するからだ。作業者は具体的な状況という混沌に身を置きながら、無数にある(ように見える)選択肢から実装を削り出し、コードによる秩序化を施していく。この営みは、抱える混沌の量に多寡はあるとしても、常に不確定要素を孕んだ「試み」であったと言えるだろう。
しかし、前述のパラダイムを含んだシンタックスが生成AIの学習下におかれることにより、今やこのプロセスは自動的に解決されつつあるものとなった。もはや「試み」とはいえなくなりつつあるのであって、ここに、職業としてのソフトウェアエンジニアの在り方が揺るがされているのである。
とはいえ実際のところ、ソフトウェアエンジニアという職業が直ちに危うくなるとはあまり考えられない。列車の運行、銀行口座の管理、スーパーのレジで使われるシステム、普段触れているウェブアプリケーションなど、我々の周りの多様なソフトウェアが今後も必要とされ存在し続けるのであってみれば、「餅は餅屋」の論理は働き続けるだろう。
そうだとすれば、「ソフトウェアエンジニアという職業は終わった」と一足飛びに構える必要はないのかもしれない。だが、彼らの本懐であったプログラミングがもはや冒険的な「試み」ではなくなったのだとして、生成AIが彼らの抱えていた荷物を羽根のように軽くしてしまったのだとして、その精神構造の変化に、処方箋とは言わないまでも何らかの秩序化を施しておきたいと考えたのである。
問いの時代とニヒリズム
荷物が軽くなったエンジニアたちに与えられた新しいパラダイムは、「AIに対して何を問うか」であった。今や「開発」はボトルネックではなく、AIへの入力となる適切な問いをデザインできる人がより一層求められるというわけだ。
確かに自らの内から問いを形成することは、エンジニアにとって重要な資質の一つである。これについては、プログラムコードは「応答」に属するものであるという整理が可能だろう。よくプログラミングの初学者に対して「プログラミングは作りたいものがあると上達が早まる」と言う人がいるのは、プログラムは常に問いと表裏の関係にあって、応答単体では存在しえないものであるからだ。
それゆえに経験を重ね、実力のあるエンジニアの設定する問いは的確でかつクリティカルなものとなる。だが、だからこそそこに行き止まりとしてのニヒリズムが生じているのではないか。
それについて考えたい点は二つある。第一に問いとは解体を待つものであるということだ。例えば、エンジニアが生業とする「Development」は知っての通り『開発』を意味する。また他にも写真を『現像』するという意味でも使われる。これは露光によって撮影された「潜像」を「Development」することでネガフィルムを作成する工程を指す。Developmentの語源はラテン語の「dis-(分離) + volvere(包む、巻く)」であり、事物が秘める可能性を外部に向けて不可逆的に「展開」するというニュアンスを持っている。
ソフトウェア開発も同様だ。ある仕様を実現するために書かれたプログラムは、機能が追加されるたびにそれと矛盾する機能の可能性を失うし、コードが増え複雑になれば、全体の整合性を保ったまま改変を加える余地が狭まっていく。再設計による全体の秩序化を試みても、今度はその設計から逸脱する仕様に対しては堅固に閉じることになる。このプロセスがAIによって自動的に、そして速やかに行われるとき、我々は問いが形成された端からその姿を失う断崖の先端に立たされているように感じるのではないか。
第二に、我々が考える問いの姿はもはや従来のものではなく、発達する技術の側面に張り付くものであるということだ。問いとは、元々は私たちの認知に生じる違和感や危機の予感から生じるもので、それで十分行動に移せるものであった。だが、この時代で求められている問いとは、AIのプロンプトになるべきものだ。そして、技術が発達するごとに、つまりAIに投げる指示は抽象的なもので十分となるごとに、問いの姿はいわば縮退していくのである。
冒頭で述べたように、具体的な作業に代わって問いを形成することは今や社会の要請だ。だが、作り出した問いは直ちに解体されてしまう。しかもその問いはAIへの入力でしかなく、技術の発展によって立ち位置すら浮動していく。こうして無力感と虚無感が積み重なり、精神もまた縮退の憂き目を見るのである。
問いの構造
「これからは問いを言語化するスキルが重要だ」、「問いを立てることが人々に残された責務だ」——これらは近年支配的なトレンドだ。だが前のセクションで述べたように、問いが、今後も驀進を続けるAIと我々の境界面となることを考えれば、ここに自らのアイデンティティを仮託し続けるのは危うい。
ではどうするべきか。もちろん処方箋を示すことはできない。しかし、このように考えてみるのはどうだろうか。
「もはや『問い』も生産されるべきものだ」と。
これは実装コストが限りなく小さくなったのだから、問いをランダムに、あるいは網羅的に生成して、それをAIに対するプロンプトとすればよい、と言いたいのではない。だが、まずは我々を取り巻く状況を具体的な図に示そう。
図1: 問いの構造
図1は問いの構造を図にしたものだ。左へ抽象に向かう線が伸びており、右に行くほど具象に向かっていく。問いを立てるのは、この軸上のどこかに点を打ち、その点を起点に思考を展開することだ。例えば筆者は過去に掲示板を作ったことがあるので、「掲示板システムを作る」という問いを立てるとしよう。左に行くのは「なぜ」と動機を遡行する動きであり「SNSに疲れたから」や、「使っていた掲示板が使えなくなったから」という問いに変化する。右に行くのは「どうやって」と目的を具象化する動きであり、「SNS利用層にも響くデザイン」や、「DDoSや負荷に強いインフラ設計」といった問いに変化する。
もちろんAIが得意なのは右に向かう具象化である。左に向かう抽象化もできないわけではないが、AIには動機の源泉となる記憶が存在しないため、何らかのペルソナを仮設した上で、この場合は「掲示板が好きなAさん」の生い立ちを創作したうえで解釈をするという操作が必要になるだろう。
図2:問いの構造(二次元的な拡張)
図2は図1の一次元的な構造を二次元的に拡張したものである。画像上部が抽象、下部が具象であり、左右には前後の経路の方向性が広がっている。先ほどの『DDoSや負荷に強いインフラ設計』であれば、トラフィックの遮断、認証の差し挟み、キャッシュの配置など、複数の方向性が左右に並びながら奥へと枝分かれしていく。具象化が進むにつれ、これらはより直接的な手法へと姿を変えていく。エンジニアはこの広がりを見渡しながら、奥へと進む経路を定めていくのである。
しかし、ある程度奥に進むと、つまり問いの具象化が進行していくと、選び取った経路は技術によって高速に処理されてしまう。熟練エンジニアがAIを用いて時に数十倍の効率を発揮することができるのは、問いをAIによって解決が可能なところまで追い込むことが可能なためだ。
さて、この構造を示した上で、二つ考えたいことがある。第一に熟練エンジニアのアドバンテージは、AIの処理能力が抽象側に前進することによって容易に失われてしまいうる、ということだ。コーディングを省略したVibe Coding(バイブコーディング)は、熟練者であるほど高効率を叩き出し、自身の身体感覚が拡張されたような快感すら覚えることがある。このような状況は、これまで技術理解、設計、他者への説明、もちろん実装を怠らなかったエンジニアに与えられる特権だと言ってよい。だが一方で、AIが登場するタイミングという偶然に恵まれただけのことでもある。それゆえ時間をおいてそのアドバンテージが相対化されていくことは免れようがない。
第二に、経路を選びながら問いを具象化していく作業は、求められる問いが抽象側に移動したとしても再現できる可能性があるということだ。例えば初心者や未経験者がAIを用いて開発を行う場合は、自分で経路を選ぶことができず、AIの差し出す提案に呑まれていくことになる。これを「自動的決断」と呼ぶことにしよう。対して、熟練者であれば数々の経験から開発の勘所を知っており、主体的に落とし穴を避けて具象に向かっていくことができる。これは「計画的決断」だと言えるだろう。この「計画的決断」こそがブレイクスルーなのだと主張したいのではない。だが、もし何を問いにして良いかわからない事態が到来しても、AIの支援があれば「自動的決断」を避けながら「計画的決断」によって問いを「生産」していくこと、これを工学的に再現可能なものとして構想することは成り立つのではないか、と考えたいのである。
今後はこれまでより問いが抽象方向に移動し、そこが主戦場となることは明白だ。だからこそ「生き様」や「ワクワク」などの根本的な部分から湧き立つ感情が取り沙汰される。これらは図1の左側の極点——超抽象とも呼ぶ領域、真善美に接する場所——により近い問いであるようにも見える。
だが、図で示したように、超抽象とAIが取り扱う領域は、地続きではあっても無限遠ともいえる関係にあるのであって、問いが抽象側に移動したとしても、直ちに「超抽象」で勝負になるというのには飛躍の気配を覚え、注意を挟みたくなる。
とはいえプログラミングも含む、言葉に関する具象の領域が自動化されつつあるのはこの時代の現実なのであって、私たちに耐える場所があるのだとすれば、浮動する具象の先端から一定の距離を取りながら、AIを片手にエンジニアリングを行っていくしかないのだと思われる。