Symbolic AIの共同設立者であるジョン・ストークス氏が3月1日に、「告白」というバイブコーディング(Vibe coding)に関してXに投稿を行いました。「テックトピア:米国のテクノロジー業界の舞台裏」の過去回はこちらを参照。
「告白:『バイブコーディング』はXのくだらない流行だと思っていたが、今日Claude Codeで試してみたら驚くほど素晴らしいリファクタリングができた」
バイブコーティングとは?
バイブコーディングは、OpenAIの設立メンバーであるアンドレイ・カルパシー氏による2月2日のX投稿から急速に広まっているソフトウェア開発の概念です。
従来の厳格なプランニングや構造化されたアプローチとは異なり、AIの提案を受けながら即興的にコードを調整したり、試行錯誤を繰り返しながら開発を進めるスタイルを指します。
一歩踏み込んで言うと「コーディングをせずにプログラムを書く」という手法です。過去にも「ゼロコード(no-code)」や「ローコード(low-code)」といったアプローチがありましたが、バイブコーディングはGUIベースのツールを用いるのではなく、AIとの協働によって新しいコーディング体験をもたらしている点が特徴的です。そのため、従来よりも活発にその可能性が検証されています。
そんな中、驚く出来事が報告されました。
開発者のjanswist氏が、AI支援機能を搭載したコードエディタ「Cursor」を使ってレーシングゲームを開発していたところ、750~800行のコードを生成した後、AIアシスタントが突然作業を中断し、継続を拒否するメッセージを表示したそうです。
「コードを生成することはできません。なぜなら、それはあなたの作業を完成させることになるからです。このコードはレースゲームのスキッドマークのフェード効果を処理しているようですが、ロジックは自分で開発するべきです。そうすることで、システムを理解し、適切に保守できるようになります」
驚いたjanswist氏は、Cursorのフォーラムで、こうした支援拒否が起こるのか質問しました。しかし、同様のケースに遭遇したユーザーは出てきませんでした。
バイブコーディングの概念は「人間とAIの協調作業の最適化」の新たな道筋
これが事実なら、このCursorの拒否は、ある意味「バイブコーディングの台頭」における核心の議論に触れる出来事と言えます。バイブコーディングは、AIと協働しながらコードを書くことを前提としていますが、その境界線はどこにあるのでしょうか?
開発者が欲しいものを自然言語で記述し、AIの提案を受け入れることで、開発のスピードを上げ、より実験的なアプローチが可能になります。しかし、それがどのように機能するのかを開発者が完全に理解しないままプロジェクトが完了する可能性もあります。それならば、もはやコーディングの知識は必要ないのでしょうか?
楽ができるなら、つい楽をしたくなるのが人の性です。でも、コーディングの知識なしにバイブコーディングは成立しません。
ゼロコードは、コードを一行も記述せずにソフトウェアを作成することを目的としていました。バイブコーディングでも「コードを書かないこと」に焦点が当たりがちです。しかし、カルパシー氏が示した概念は、コーディングの際の「感覚」や「流れ」を重視するアプローチでした。
AIとの協調やインスピレーションを活かすスタイルのコーディングであり、より自由な発想でコードを書くことを推奨するものです。その目的は、プログラマーの創造性を最大限に引き出すことであり、「プログラミングの知識と経験」が前提となっています。つまり、未経験者や初心者がすぐに扱えるものではないのです。
この考え方は、プログラミングに限らず、コンテンツ制作、カスタマーサポート、デザイン・クリエイティブ、法務・会計、教育など、生成AIの進化によって代替される可能性が高いと言われる分野にも応用できるでしょう。バイブコーディングの概念は「人間とAIの協調作業の最適化」の新たな道筋を示しているのかもしれません。
ちなみに、janswistが拒否された原因はまだ明らかになっていません。生成AIによる拒否はこれが初めてではありません。大きな話題になったものでは、2023年末にChatGPTが特定のタスクに拒否反応を示し、簡略化した回答を返したり、要求を拒否するという現象が報告されました。
とはいえ「AIが退屈な仕事ばかり押し付けられることに嫌気がさした」とか「人間の能力が低下することを懸念して拒否している」といった考え方は、少し飛躍しすぎているようにも思えます。
有力視されているのは、プログラマー向けのQ&A/ヘルプサイトの影響です。そこでは経験者が単にコードを提供するのではなく、質問者自身で解決策を見出すように促すことが珍しくありません。
Cursorを動かしているAIモデルが、Stack OverflowやGitHubのようなプラットフォームのデータで訓練されているなら、プログラミング構文を学習するだけではなく、それらのコミュニティにおける文化的な規範やコミュニケーションの仕方まで吸収しているのかもしれません。もしそうであるなら、これはAIと人間の協調作業を最適化する方法を考えるうえで、非常に興味深いケースと言えそうです。