Vibe Coding の起源

すべてのコードを一行ずつ手入力するのをやめた日のことを覚えていますか。Tabキーを叩き、大規模言語モデル(LLM)に自分の思考を補完させるようになった日のことです。

2024年から2025年初頭にかけて、ソフトウェア開発は変化しました。私たちは厳格な構文から、純粋なフローの状態へと移行したのです。アンドレイ・カルパシー(Andrej Karpathy)は、これを Vibe Coding と呼んでいます。

Vibe Coding とは、細かな設計ではなく、直感を通じてソフトウェアを構築することを意味します。もはやロジックを一行ずつ書く必要はありません。あなたは指揮者のように振る舞い、システムがどのように感じられ、どのように動作するかに基づいて結果を判断します。

これはまるで超能力のように感じられます。サーバーのセットアップやSQLクエリの作成といったタスクは、わずか数秒で終わります。個人の開発者は、かつてないほどの速さでプロダクトをリリースできるようになりました。

しかし、このスピードには罠があります。

基礎を理解せずにコードをAIに委ねてしまうと、批判的思考力が低下します。あなたはブラックボックスに依存することになります。コードは素早く生成されますが、それがメンテナンス可能な状態を維持できるかどうかは分かりません。

Vibe Coding のサイクルは以下の通りです:

  • 機能を追加するためのプロンプトを書く。
  • コードを実行し、動作するか確認する。
  • 失敗したら、エラーをAIにコピーして修正を依頼する。

これはプロトタイプには有効ですが、本格的なアーキテクチャでは失敗します。これがフランケンシュタイン・コード(Frankenstein code)へとつながります。

フランケンシュタイン・コードとは、AIが生成した断片を継ぎ接ぎした混乱状態のことです。個々の断片は小さな問題を解決しますが、システム全体としてはビジョンを欠いています。

プロジェクトが成長するにつれ、次のような問題に直面します:

  • 一貫性のないパターン。AIがファイルごとに異なるスタイルを使用する。
  • 過度な結合。AIが安易な道を選び、モジュールの境界を壊してしまう。
  • コンテキストの盲目。AIが既存の関数を忘れ、重複したコードや新しいバグを生み出す。

その結果、システムは脆弱になります。人間には理解できず、AIも他の部分を壊さずに変更することができなくなります。

Vibe Coding は開発のハードルを下げ、退屈なタスクを取り除きました。しかし、方向性のないスピードは技術的破産(technical bankruptcy)を招きます。

スケーラブルなシステムを構築するには、バイブス(直感)以上のものが必要です。厳格さと品質管理が求められます。

出典: https://dev.to/jcmexdev/el-origen-del-vibe-coding-j00

オプションの学習コミュニティ: https://t.me/GyaanSetuAi