動画をストリーミングしたり、オンラインで請求書を支払ったり、メールを送信したりする際、これらの動作は全て舞台裏で動作するコンピュータプログラムに依存している。コンピュータプログラムを書く過程はコーディングとして知られている。最近まで、ほとんどのコンピュータコードは、少なくとも最初は人間によって書かれていた。しかし、生成型人工知能の出現により、状況は変わり始めている。
現在では、ChatGPTに好きな料理のレシピを作らせたり、Lord Byron風のソネットを書かせたりするのと同じように、生成型AIツールにコンピュータコードを書かせることができるようになった。OpenAIの共同創設者でTeslaのAI取り組みを以前率いていたAndrej Karpathy氏は、最近これを「バイブコーディング」と呼んだ。
完全な初心者や技術的でない夢想家にとって、バイブ(明確に定義された情報ではなく感覚)に基づいてコードを書くことは、超能力のように感じられるかもしれない。プログラミング言語や複雑なデータ構造をマスターする必要はない。シンプルな自然言語プロンプトで十分なのだ。
仕組み
バイブコーディングは技術言語の標準的なパターンに依存しており、AIシステムはこれを使って訓練データから独創的なコードをまとめ上げる。初心者であれば誰でもGitHub CopilotやCursor ChatなどのAIアシスタントを使って、いくつかのプロンプトを入力し、システムに作業させることができる。以下がその例である:
「音楽、ユーザーインタラクション、またはリアルタイムデータに反応する、活発でインタラクティブな視覚体験を作成してください。あなたのアニメーションには、滑らかなトランジションと色彩豊かで生き生きとしたビジュアル、そして体験における魅力的な流れを含めてください。アニメーションは音楽、ユーザーインタラクション、またはライブデータに対して有機的で反応的に感じられ、没入的で魅力的な体験を促進すべきです。このプロジェクトをJavaScriptまたはReactを使って完成させ、他の体験の雰囲気を設定するために簡単にカスタマイズできるようにしてください」
しかし、AIツールは問題となるソフトウェアの特定のルール、エッジケース、セキュリティ要件について実際の理解なしにこれを行う。これは、製品要件、速度、スケーラビリティ、持続可能性、セキュリティ間のトレードオフのバランスを取らなければならない本格的なソフトウェア開発のプロセスとは大きく異なる。熟練したエンジニアがコードを書いてレビューし、テストを実行し、本稼働前に安全障壁を確立する。
しかし、構造化されたプロセスの欠如は時間を節約し、コーディングに必要なスキルを下げる一方で、トレードオフがある。バイブコーディングでは、これらのストレステストの実践のほとんどが窓の外に投げ捨てられ、システムを悪意のある攻撃や個人データの漏洩に対して脆弱にする。
そして簡単な解決策はない:AIエージェントが書いたコードの全ての行、あるいは任意の行を理解していなければ、コードが壊れた時に修復することはできない。さらに悪いことに、一部の専門家が指摘しているように、静かに失敗している時に気づくことができない。
AI自体もこの分析を実行する装備を持っていない。「動作する」コードが通常どのようなものかは認識するが、コードが引き起こしたり悪化させたりする可能性のあるより深い問題を必ずしも診断したり修正したりすることはできない。
IBMのコンピュータサイエンティストMartin Keen氏は、AIプログラミングと従来のプログラミングの違いを説明している。
なぜ重要なのか
バイブコーディングは一時的な現象に過ぎず、やがて立ち消えになるかもしれないが、熟練したプログラマーとのより深い応用を見つける可能性もある。この実践は、熟練したソフトウェアエンジニアや開発者がアイデアを実行可能なプロトタイプにより迅速に変換することを助ける可能性がある。また、初心者プログラマーやアマチュアコーダーでさえAIの力を体験することを可能にし、おそらく彼らをより深くこの分野を追求するよう動機づけるかもしれない。
バイブコーディングはまた、一部のコンピュータプログラムの開発において自然言語をより実行可能なツールにする可能性のある変化を示唆しているかもしれない。もしそうであれば、デザイナーに「見たままが得られる」ことを約束したWYSIWYGエディターとして知られる初期のウェブサイト編集システムや、基本的なコンピュータスキルを持つ誰でも簡単にブログを立ち上げることを可能にした「ドラッグアンドドロップ」ウェブサイトビルダーを反響するだろう。
現在のところ、バイブコーディングが経験豊富なソフトウェアエンジニア、開発者、コンピュータサイエンティストに取って代わるとは信じていない。この分野と技術は、AIが扱えるものよりもはるかに微妙であり、「バイブコード」を正当なソフトウェアとして通すリスクは大きすぎる。
しかし、AIモデルが改善され、コンテキストを組み込み、リスクを考慮することにより熟達するにつれて、バイブコーディングのような実践がAIと人間のプログラマーの境界をさらに曖昧にする可能性がある。