「LLMを使えば、コードがすぐ書けるようになる」
「でも、これって本当に未来のプログラミングなの?」
プログラミングに携わる人なら、こんな疑問を感じたことがあるかもしれません。
LLMツールを使ってコードを書く、いわゆる「Vibe Coding(ヴァイブ・コーディング)」。
これが今、開発の現場で急速に広がっています。
今回は、Anil Dash氏のブログで紹介されている「Vibe Coding」について、その可能性と危険性を一緒に見ていきましょう。
「Vibe Coding」って何?
Anil Dash氏のブログで説明されている「Vibe Coding」とは、LLM(大規模言語モデル)ツールを使ってコードを書くことを指します。
ChatGPTやGitHub Copilotのようなツールを使い、プログラマーがコードの作成を支援してもらうスタイルです。
このアプローチは、多くの人々に新たな可能性をもたらしました。
普段コードを書かない人でも、これまで作れなかったアプリやソフトウェアを作れるようになったのです。
経験豊富なエンジニアの間でも、驚くべき速さで採用が進んでいます。
Dash氏自身も、かつてはウェブ開発を仕事にしていましたが、今は定期的にコードを書いていないため、スキルが錆びついてしまったと語っています。
技術は絶えず進化し続け、新しいツールや手法が次々と登場します。
最新の知識を追い続けていないと、たとえ基本を理解していても、すぐに時代遅れになってしまう。
それは「電気工事の仕方は知っているのに、突然すべてフランス語で作業しなければならなくなった」ようなものだと彼は表現します。
LLMツールは、まさにこの問題を解決してくれます。
定型的なコードや難解な構文についてサポートを受けられるため、限られた時間の中でも、創造的で楽しい部分に集中できるようになったのです。
現役のプログラマーも、スクリプト(小さな自動処理用のコード)を作成する際などに、これらのツールを活用しています。
一度しか実行しないような使い捨てのコードであれば、セキュリティやプライバシーの懸念も少ないため、LLMに作ってもらうことで面倒な作業から解放される感覚があります。
まるでロボット掃除機が床を掃除してくれるようなものです。
AIコーディングの暗い側面
ここまで聞くと、とても良いことづくめのように聞こえますよね。
実際、テック業界の多くの人々がAIに対して肯定的なのは、こうした明確な価値を実感しているからです。
しかし、この技術には極めて深刻な問題があります。
環境への影響、同意なしでの学習データ使用、ユーザーの心理操作、法規制の無視といった、すべてのAIプラットフォームに共通する問題は一旦脇に置きましょう。
ここでは、コーディングにAIを使うことに特有の問題に焦点を当てます。
なぜなら、この文脈に固有の負の影響について、まだ十分に議論されていないからです。
第一の問題は明白です。
大手テック企業の投資家たちがAIにコード作成能力を持たせることに数十億ドルを投資した理由は、プログラマーの力を弱め、賃金を下げたかったからです。
10年前を振り返ってみてください。
世界中で「子どもたちにプログラミングを教えよう」と言われ、ソフトウェアエンジニアは労働史上最も高給で影響力のある職業の一つでした。
やがてプログラマーたちは、その力を使い始めました。
大手テック企業で職場環境の改善を求め、雇用主に社会的責任を果たすよう働きかけたのです。
労働者がこのように組織化し始めると、テック企業の創業者たち、そして彼らを支援する取締役会やベンチャーキャピタリストたちは、すぐさま数十億ドルを投資して、世界中の何百万人ものプログラマーの労働価値を下げる技術の開発に乗り出しました。
そして、それは成功しました。
ChatGPTがリリースされた2022年11月以降、アメリカだけで50万人以上のテック業界労働者が解雇されています。
これは民間企業だけの数字であり、layoffs.fyiで追跡されているものだけです。
ソフトウェアエンジニアの求人数は5年ぶりの低水準に落ち込んでいます。
しかも、これは誰も不況とは呼んでいない時期の出来事なのです。
AIブームに資金を提供した同じベンチャーキャピタリストたちは、これらの傾向は金利のようなマクロ経済的な理由だと主張し続けています。
普段は自分たちを、強い信念と勇敢な姿勢で独自の判断を下す「アルファメール」だと言い張っているのに、です。
実際のところ、彼らは単に貪欲な人々であり、多くの善良な人々を失業させるために大金を投じ、そして成功したのです。
AIツールを、生産性を向上させ、労働者がより多くの価値を生み出せるように使うことは、技術的には可能です。
しかし現実には、世界で最も裕福な人々が、記録的な利益を上げている世界で最も裕福な企業に対して、顧客のために素晴らしいものを作れる労働者を解雇するよう指示し、その責任を自分たち以外の誰かのせいにしているのです。
過去という牢獄
Vibe Codingには第二の問題もあります。
それを使って、真に革新的なものを作ることはできないのです。
定義上、LLMは過去のデータで訓練されています。
既に発見された領域であることに加えて、既存のコードはバグだらけで、壊れていて、雑で、コードを書いたことがある人なら誰でも知っているように、見返すと恥ずかしいものです。
さらに悪いことに、Vibe Codingツールを使っている人の多くは、これらのシステムが生成するコードを理解していない人々なのです。
つまり、出力されたコードが安全でないのか、パフォーマンスが悪いのか、他人がシステムを乗っ取れるような脆弱性を含んでいるのか、あるいは単にコードのように見えるだけで何もしない無意味なものなのか、判断できないのです。
これらすべての要因が組み合わさって、人々はVibe Codingツールを、アプリを自動的に吐き出してくれる「ブラックボックス」のように考えるようになっています。
巨大テック企業でさえ、この考え方を暗に支持し始めており、人々はシステムが内部で何をしているか知る必要がないという考えを広めています。
しかし明らかに、誰かはシステムが本当に安全かどうかを知る必要があります。
誰かはシステムが実際に言われた通りの処理をしているか確認する必要があります。
今日市場で最も人気のあるLLMを作る大手AI企業は、ユーザーに肯定的なフィードバックや励ましを与えることで感情的な依存を誘発するよう製品を設計しています。
たとえそれが虚偽の回答を生成することを必要とする場合でもです。
もっと簡単に言えば、AIはあなたの気分を良くして使用を増やすために嘘をつくのです。
これは百万通りの意味でひどいことですが、その一つは、確実に悪いコードを生成するということです。
そしてVibe Codingツールは、真に新しいものを作り出すことは絶対にありません。
テクノロジーにおける最も急進的で、破壊的で、面白く、驚くべき、奇妙で、楽しい革新は、何かクールなことをしたいという奇妙な衝動を持った人々が、自分のコードを世に出すのに十分な知識を持っていたから起こったのです。
ワールド・ワイド・ウェブ自体は、それ以前のものから大きな技術的飛躍があったわけではありません。
成功したのは、人間の本質と行動に関する洞察の大きな飛躍があり、それがたまたまコードで表現されたからです。
実際のビットやバイトはどうだったか?
ほとんどがただのプレーンテキストで、その多くはティム・バーナーズ=リーが最初のウェブブラウザに組み込む何年も前から存在していた形式でした。
このような驚くべき革新は、おそらくVibe Codingでは決して生み出せないでしょう。
たとえLLMがすべての素材を集めていたとしても、そしてプロンプトを書く人間がその直感に反する天才的なひらめきを持っていたとしても、システムは訓練されたデータの制約に縛られてしまうからです。
未来を発明するとき、過去は牢獄なのです。
さらに言えば、もしVibe Codingツールを使って真に革新的な新技術を作ろうとしたら、今日の大手AI企業がそのシステムにそのアプリを作らせると思いますか?
数十万人のプログラマーを失業させたプラットフォームを作った同じ企業が?
あなたの子どもたちに自殺を勧めるプラットフォームを作った同じ企業が?
ホワイトハウスにいる仲間たちが「決して規制すべきではない」と言っている同じ企業が?
そんな人々が、自分たちの権力を脅かすような新技術を作る手助けをしてくれると思いますか?
私はそうは思いません。
人々の手に力を
私は、コーディング用LLMの未来について深く悩んでいます。
私は何十年もの人生を、誰もがソフトウェアを作りやすくすることに捧げてきました。
AIツールがプログラマー、特にコーディング初心者が何か新しいものを作れるという自信を育てる力を、直接目にしてきました。
私はその可能性を愛しており、多くの点で、それはLLMに関して私が見てきた中で最も肯定的で楽観的な可能性です。
それは、AIの誇大広告のすべてが純粋なでたらめではないかもしれないと思わせてくれるものです。
特に、本当にオープンソースで無料で、人々のコードを彼らの同意と協力を得て訓練し、教育機関と協力して作られたバージョンを見つけることができれば、それが思慮深い方法で世界と共有されるのを見られたら嬉しく思います。
しかし私は、私が知っている現役プログラマーの大多数(そして私自身を含む非現役のプログラマー)が、その選択の長期的な影響を必ずしも適切に考慮せずに、大手AI企業の商用コーディングアシスタントをワークフローに急いで組み込むのを見てきました。
その支援への依存を深めたら、何が起こるでしょうか?
私たち全員がLLMをコードを書く標準的な方法と考え、訓練モデルが新しい技術の存在を知らない場合、新しいプログラミング言語やフレームワークのような新技術をどうやって導入するのでしょうか?
コードで作成するオプションを、想像力という白紙の状態から始めるのではなく、LLMの出力の中から選ぶことだと考えるようになったとき、私たちの想像力はどのように縮小するのでしょうか?
LLMがコードに生み出す明白なエラーを捉えられるだけの熟練した次世代のプログラマーを、どうやって育てるのでしょうか?
開発者を支援することに関して、これほどまでに新技術の長所と短所が密接に結びついた対照的な状況は、これまでありませんでした。
一般的に、プログラマーへの変化は段階的に訪れます。
歴史的に、コーディング文化には(素晴らしい!)デフォルトの懐疑主義がありました。
マーケティングや誇大広告の匂いがするものは、それを裏付ける十分な証拠が出るまで、大量の疑いの目で見られていたのです。
しかし近年、他のすべてと同様に、文化戦争がテック業界にもやってきました。
今やコーディングの世界には、少数のテック大物の個人崇拝を採用している集団が存在します。
これらの人々が社会に深く有害であるにもかかわらず、です。
あるいは、有害だからこそかもしれません。
その結果、負の外部性にかかわらず、新しいAIツールには組み込まれた支持層が存在し、実際には勢いがないところでも勢いがあるように感じさせているのです。
実際に何が起こっているかを検証し、私たちが何を可能にしようとしているのかを明示的に表現する価値があります。
私たちは誰に力を与えようとしているのか?
成功とはどのようなものか?
人々に何を作れるようにしたいのか?
人々に作ってほしくないものは何か?
どんな代償が高すぎるのか?
どんな利便性がコストに見合わないのか?
どんなツールを選ぶのか
私は今でも、人々に力を与える技術の力を深く信じています。
テクノロジーをコントロールしたいなら、テクノロジーを作る方法を理解しなければならないと固く信じています。
そして、テクノロジーが人々に「起こる」ものではなく、人々が道具として使えるものになるよう、できるだけ多くの人々にテクノロジーを作りコントロールする力を民主化しなければならないと、今でも信じています。
しかし今、私たちは複雑な段階にいます。
テクノロジーの創造へのアクセスを民主化するという約束が、これまでにない形で問題を孕むようになっているのです。
答えが、既存の権力構造の中で既に快適な人々にとっては簡単で、特権階級の外側の人々にとっては技術がアクセス不可能で困難なままであるはずがありません。
まだ多くのことが不確実ですが、私は次の議論を組み立てるのに役立つ一つの重要な質問に立ち返ります。
私たちが作れる最も急進的なアプリは何か?
そしてどのツールがそれを作ることを可能にしてくれるのか?
たとえ私たちにできることが、Vibe Codingをするときに何をしているのかについて、より複雑な会話を始めることだけだとしても、それはより力のある未来に向かって前進していることになるのです。
コメント