「バイブコーディング」—AIが
変えるプログラミングの世界

  • 「ユーザーログイン機能作って」などとノリで指示するだけでAIがコード生成してくれる「バイブコーディング」が話題。
  • 完璧な指示じゃなくても、それなりに動いてしまうがポイント。
  • プログラミング言語の安全弁(自動メモリ管理など)が積み重なった結果、こんな時代になっているんですね。

関連記事

1. 身近で進む生成AIの活用

ChatGPTで英語の文章を翻訳したり、Excelの複雑な計算を手伝ってもらった経験はありませんか。生成AIの登場からあっという間に、AIとの協働作業は日常の一部になっています。

プログラミングの世界では、もっとAI利用は進んでいます。その変化を象徴する新しい言葉が「バイブコーディング」です。この言葉が示す現象は、プログラミングだけでなく、あらゆる専門職の未来を考える上で重要な手がかりを与えてくれます。

1.1. 「バイブコーディング」という新しい言葉

2025年2月、元OpenAI研究者のアンドレイ・カルパシー氏1がSNSで発言した「vibe programming」という表現が話題になりました。

“There’s a new kind of coding I call ‘vibe coding’, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper…”

私が「バイブコーディング」と呼んでいる新しいタイプのコーディングがあります。それは、バイブスに完全に身を任せ、指数的な発展に抱かれ、コードの存在すら忘れてしまうようなコーディングです。LLM(例えば、Cursor ComposerとSonnet)があまりにも優秀になりすぎているからこそ、それが可能になったのです。それに、私はSuperWhisperを使ってComposerと対話しているので、キーボードにはほとんど触れません。

Andrej Karpathy氏の原文ツイート(2025年2月2日)

日本語に訳すと「雰囲気プログラミング」や「ノリでプログラミングする」といったところでしょうか。

  • 従来のプログラミングでは、コンピューターに対して非常に厳密な指示を書く必要がありました。
    「for文でループを作り、if文で条件分岐し、変数に値を代入する」といった具合に、一字一句間違えずに記述しなければなりません。
  • しかし、バイブコーディングでは全く異なります。
    「ユーザーがログインできるWebサイトを作って」「売上データをグラフにして」といった曖昧な指示を出すだけで、AIが数分でアプリケーションを生成してくれるのです。

まるで、外国語を話せない人が身振り手振りで意思疎通を図るような感覚です。完璧ではないけれど、なんとなく伝わって、なんとなく動く。これがバイブコーディングの本質です。

1.2. 表記の厳密性と標準化

しかし、バイブコーディングには、向いている言語と向いていない言語があります。それは「表記の厳密性」という、プログラミング言語が持つ根本的な特徴です。

例えば、数学の計算式「1 + 2」を考えてみましょう。人間なら「1+2」「1+2 」「1 + 2」といった微細な違いがあっても、すべて同じ意味だと理解できます。しかし、多くのプログラミング言語では、全角記号と半角記号などの小さな違いがエラーを引き起こします。

  • C言語では、文の終わりにセミコロン(;)を付け忘れると
  • LISPでは、(+ 1 2)と書くべきところを+ (1 2)と書いてしまうなど括弧の位置が一つでもずれる

人間も「セミコロンを忘れてる」「あ、括弧が足りない」とやりがちな構文エラーは、統計的にコードを生成するAIも起こしやすいです。「だいたい正しい」では動かないのがプログラミング言語の宿命なのです。

そんな中、比較的AIが得意とする言語は、PythonやJavaScriptなど。コード例も多くあり、同じ処理を書く方法がある程度決まっているため、AIが統計的に「最も確率の高い表現」を選びやすいのです。また、これらの言語には「安全弁」が豊富に組み込まれており、多少の記述ミスがあっても修正しやすいようになっています。

2. プログラミング言語に蓄積された「安全弁」の意味

この「安全弁」が、「雰囲気」でプログラミングを成り立たせる要因です。プログラミング言語の長い進化と「プログラミングの民主化」の歴史を振り返ってみましょう。

プログラミング言語の「安全弁」蓄積 数十年にわたるプログラマー負担軽減の積み重ね メモリ管理自動化 ガベージコレクション 使用済みメモリを自動回収 メモリリークを防止 プログラマーの負担軽減 型の自動推論 型指定不要 コンパイラが自動判断 記述量大幅削減 型エラーも自動検出 エラー処理親切化 分かりやすいメッセージ 問題箇所を明示 修正方法も提案 デバッグ時間短縮 従来:厳密性が必須 完璧でないとエラー プログラマーが全て管理 現在:言語が支援 「だいたい正しい」でも動く 言語が自動で補完・修正 結果:AIが「雰囲気」でも動くコードを書ける 安全弁の蓄積により、多少の不完全さがあっても言語が補完してくれる
  • 1950年代、プログラマーは0と1だけで構成される機械語を直接書いていました。
  • 1960年代にFORTRANやCOBOLといった高級言語が登場し、人間にとって理解しやすい形でプログラムを書けるようになりました。
  • 2000年代以降、Webやスマートフォンアプリの普及により、JavaScriptやPythonのような、より柔軟で書きやすい言語が主流になりました。
  • そして2020年代、ついに自然言語(普通の言葉)がプログラミング言語として機能するようになったのです。

この変化を支えているのは、プログラミング言語に組み込まれた様々な「安全弁」です。メモリ管理の自動化(ガベージコレクション)、型の自動推論分かりやすいエラーメッセージなど、プログラマーの負担を軽減する仕組みが蓄積されてきました2。これらの技術により、AIが「雰囲気」で書いたコードでも、動かしやすくなっていたのです。

2.1. ハッカーから起業家へ

バイブコーディングの登場は、プログラマーのあり方の変化とも表裏一体です。

  • 1960年代から2000年代にかけて活躍したハッカー世代は、複雑で創造的な表現力を持つ言語を好み、個人の技術力を誇示していました。
  • 1990年代から2020年代の職業プログラマー世代は、「チームでの効率性」を重視しました。個人の創造性よりも、標準化された手法で確実に動くソフトウェアを作ることを優先しました。
  • そして2020年代以降のAIユーザー世代は、「AIとの協働による価値創造」を最も重要だと考えています。技術者というよりは、起業家で完璧な技術よりも、迅速な価値提供を目指すのです。

2.2. LISPの歴史的皮肉

この変化を最も象徴的に表しているのが、LISP(リスプ)という言語の運命です。

LISPは1958年に誕生した、3世界で2番目に古いプログラミング言語です。処理・関数もデータとして扱える「表現の多様性」から「自己改良するAIのためのプログラミング言語」として有望視され、1980年代のAIブームでは、LISP専用のコンピューター「LISPマシン4」まで製造されるほど、AI研究の中心的存在でした。

ところが2025年の現在、LISPはAI生成に適さない言語の一つになっています。その理由は、LISPの最大の特徴である「表現の多様性」にあります。

LISPのマクロという機能が、この問題を象徴的に表しています。マクロとは、プログラマーが独自の構文や言語構造を定義できる強力な機能です。例えば、繰り返し処理を書く場合、標準的な方法以外にも、プログラマーが自分専用の書き方を作り出すことができます。

具体例を見てみましょう。「1から10までの数字を順番に処理する」という同じ作業でも、LISPでは以下のような様々な書き方が可能です:

; 標準的な書き方
(loop for i from 1 to 10 do (print i))

; マクロで独自構文を作った例1
(defmacro repeat-times (n &body body)
  `(loop for i from 1 to ,n do ,@body))
(repeat-times 10 (print i))

; マクロで独自構文を作った例2
(defmacro count-up (var start end &body body)
  `(do ((,var ,start (+ ,var 1)))
       ((> ,var ,end))
     ,@body))
(count-up num 1 10 (print num))

; さらに別のマクロ例
(defmacro from-to (start end &body actions)
  `(dotimes (counter (- ,end ,start -1))
     (let ((current (+ ,start counter)))
       ,@actions)))
(from-to 1 10 (print current))Code language: PHP (php)

これらはすべて同じ結果を生み出しますが、書き方は全く異なります。人間のプログラマーにとって、これは創造的な自由を与えてくれる素晴らしい機能でしたが、統計的にコードを生成するAIにとっては、「どの書き方が正しいのか」を判断できず、一貫性のないコードを生成してしまいがちなのです。

一方、ハッカー世代が「お遊びにしか使えない」と軽視していた PythonやJavaScript5は、表現方法が標準化が進んでいて6、AIが最も得意とする言語になりました。

「創造的な表現力」と「統一された標準化」の勝負は、AIの時代では後者に軍配が上がったようです。

3. 標準化可能な仕事がスケールする

プログラミング業界で起きているこの変化は、他の専門職にも共通します。これまで、多くの専門分野では、「職人技」から「標準化」を経てきました。それが今や「AI協働」へと進化しています。

最初は個人の技能と経験に依存していた作業でも、標準・機械化されたプロセスに置き換わっていたものは、最終的にはAIにさせる作業へと変わりつつあります。昨今の「DX化(デジタル・トランスフォーメーション)」なども、このための「下準備」と言えます。

この変化の鍵となるのは「再現性・代替可能性」です。標準化して再現可能な作業ほど、効率化は進むもののAIが得意とする領域になります。

バイブコーディングで起きていることは、私たちの仕事の未来を考える上で重要な示唆を与えてくれます。人間にとって重要になるのは、両極端になります。AIを使役する分野では、「雰囲気」を正確に伝える言語能力や管理能力が求められ、機械化・効率化できないような作業分野では人間的な手間ひま・心配りであったりします。

4. エピローグ:技術協働の時代

バイブコーディングは、私たちがAI技術を使う時代の特徴を表しています。プログラミングの世界では、自由自在にプログラミング言語の可能性を引き出す能力よりも、AIに適切な指示を出して迅速に価値を創造する能力が重要になってきています。LISPという歴史あるAI言語が、皮肉にもAI時代に取り残されたことは、技術の進歩が必ずしも予想通りに進まないことを教えてくれます。

この変化は始まりに過ぎません。バイブコーディングが示すパターンは、プログラミング以外の多くの専門分野でも起こり得る現象です。重要なのは、変化を恐れるのではなく、新しい協働の形を理解し、適応していくことなのでしょう。


  1. Vibe coding – Wikipedia – バイブコーディングの概念とアンドレイ・カルパシー氏による定義の詳細
  2. What is vibe coding, exactly? | MIT Technology Review – バイブコーディングの技術的詳細と業界への影響についての解説
  3. Not all AI-assisted programming is vibe coding (but vibe coding rocks) | Simon Willison – バイブコーディングと一般的なAI支援プログラミングの違いについての専門的な考察
  4. AI Vibe Coding: Engineers’ Secret to Fast Development | IEEE Spectrum – エンジニア視点からのバイブコーディング活用事例と実践的な応用について
  5. Lisp (programming language) – Wikipedia – LISP言語の歴史とAI研究における役割についての包括的な解説
  6. LISP And The Dawn Of Artificial Intelligence | Quantum Zeitgeist – LISPがAI研究に与えた歴史的影響と現代的な視点での評価
  7. History of programming languages – Wikipedia – プログラミング言語の進化史全般についての詳細な年表と解説
  8. Introducing Codex | OpenAI – OpenAIのコーディング支援ツールCodexについての公式発表と技術仕様
  9. What is Vibe Coding? | IBM – IBM による バイブコーディングの企業レベルでの応用可能性についての分析
  10. The Rise of Vibe Coding: Beyond the Hype and the Hate | Codemotion – バイブコーディングの利点と課題についてのバランスの取れた専門的分析
  1. アンドレイ・カルパシー氏はOpenAIの創設メンバーの一人で、Tesla社でAI開発を担当した後、2023年にOpenAIに復帰した著名なAI研究者 – Andrej Karpathy – Wikipedia
  2. メモリ管理の自動化は「ガベージコレクション」と呼ばれ、プログラマーが手動でメモリを管理する必要をなくす仕組み。型推論は、プログラマーが明示的に型を指定しなくても、コンパイラが自動的に適切な型を判断する機能
  3. LISPはFORTRANに次いで世界で2番目に古い高級プログラミング言語。John McCarthyがMITで開発し、人工知能研究を目的として設計された – LISP | Artificial Intelligence, Machine Learning & Programming | Britannica
  4. LISPマシンは1970年代にMITで開発が始まり、1980年代に商用化された。Symbolics社やLisp Machines社などが製造・販売し、AI研究の専用ハードウェアとして使用された – Lisp machine – Wikipedia
  5. JavaScriptは1995年の誕生当初、「たった10日で作られた言語」として、多くの技術者から「トイ言語(おもちゃの言語)」と揶揄されていました。Pythonは1991年の登場時、「スクリプト言語」というカテゴリに分類され、C言語やC++と比べて動作速度が遅く、ハッカーたちからは「本格的なソフトウェア開発には向かない」「学習用や趣味レベルの言語」として軽視されていたのです。
  6. 2024年にPythonがJavaScriptを上回りGitHub上で最も使用される言語となった。これはAIと機械学習の普及が主な要因とされている – Python just brushed past JavaScript to become the most popular programming language on GitHub