バイブコーディング

サムネイル

バイブコーディングとは何か?

バイブコーディングは、Andrej Karpathyによって2024/2025年に導入された、AIを活用したプログラミング手法です。バイブコーディングでは、自然言語のプロンプトでやりたいことを説明すると、通常は大規模言語モデル(LLM)が、あなたのために動作するコードの大部分、しばしばそのすべてを生成します。時間があるなら、Rick Rubinによって翻案されたArt of Vibe Codingを見て、**バイブコーディングの道**についてさらに学んでみてください。

この新しい手法の大きな利点の一つは、アクセスしやすさです。なぜなら、コーディング経験のない人でもプロジェクトを作ることができ、経験豊富な開発者は本格的に取り組む前に新しいアイデアを素早く試作できるからです。これは特にスタートアップにとって有用です。欠点は、開発者が生成されたコードの仕組みを完全には理解しない可能性が高いことです。小さな個人プロジェクトなら問題ありませんが、本番レベルのソフトウェアでは、長期的な問題や技術的負債につながる可能性があります。

バイブコーディングをよりスムーズにするツールはたくさんあります。Cursor IDEClaude Code CLIGitHub CopilotLoveableReplitv0などは、AIを自分の環境で直接使えるようにしたり、バイブコーディング専用のインターフェースを提供したりします。個人的には、これらのプロジェクトでは主にCursor IDEClaude Code CLIを使っていました。

ただし、ここで重要なのは、これらのツールやモデルにはお金がかかるということです。従来のコーディングでは、主に時間を支払っています。バイブコーディングでは、財布で支払っているのです。そして、何をしているのかわからないなら、財布と時間の両方を支払うことになります。このページ上の各プロジェクトは、作成におよそ**$10から$20**かかります。いろいろ試していると、すぐに積み上がります。これらのモデルが改良され、より効率的になれば、いずれコストは下がると思います。現時点では、自分のプロジェクトにバイブコーディングが適しているかを判断する際に考慮する価値のある点です。

何が可能なのか気になって、私自身もバイブコーディングを試し、実際のプロジェクトを通してその原理そのものを探るためにこのページを作りました。私は単に製品を作っているのではなく、バイブコーディングが実際にどこまでできるのかをテストし、実演しているのです。これはただの遊びですが、これらのモデルが改良され続けるにつれて、将来のコーディングがどのように見えるのかを垣間見せてくれます。

無限の猿定理

著者

無限の猿定理を聞いたことがありますか?それは、無限の猿に無限のタイプライターと無限の時間を与えれば、やがてそのうちの一匹がランダムにキーを打つだけでシェイクスピアの全作品を生み出すだろう、という哲学的思考実験です。

ばかげて聞こえますよね?でも、ここがすごいところです。バイブコーディングはある意味それに似ています。ただし、猿の代わりにAIモデルがあり、タイプライターの代わりにプログラミング言語があり、シェイクスピアの代わりに動くソフトウェアが得られるのです。

考えてみてください。大規模言語モデルは、何十億行ものコード、パターン、例をもとに学習されています。LLMにプロンプトを与えると、それは人間の開発者のように問題を一歩ずつ「考える」わけではありません。代わりに、学習中に得たパターンに基づいて、次に最も起こりそうなトークンを予測しているのです。本質的には、統計的に正しそうに見えるものに基づいてコードを生成することで、見当をつけているのです。

そして不思議なことに、たいていの場合うまくいきます。モデルは、実際にコンパイルされ、実行され、あなたの問題を解決するコードを出力します。理解によってではなく、途方もなく大規模な確率的パターン照合によってです。まるで、宇宙で最も洗練されたランダムなテキスト生成器が「正しい」答えを見つけたかのようです。しかし、ここでの違いは速度です。あの猿たちには文字どおり無限が必要でしょう。あなたのAIは? 数秒から数分でたどり着きます。

つまり、ある意味では、バイブコーディングを使うとき、あなたはモデルに蒸留された何百万行ものコードのパターンを活用して、解決策を生成しているのです。それは意識的な問題解決ではなく、統計的な魔法です。そして、まさにそれがこれほど強力であり、そして率直に言って、コードが実際に何をしているのかを理解することが今でも重要である理由なのです。

答えよりも問いのほうが重要

ここで見落とされがちな重要なことがあります。バイブコーディングは、どんな答えでも得ることではなく、正しい問いを投げかけることなのです。銀河ヒッチハイク・ガイドに登場するディープ・ソートスーパーコンピュータを思い浮かべてください。あれは、生命、宇宙、そして万物についての究極の問いへの答えを計算するのに何百万年も費やした末、最終的に42という数字を出しました。答えは技術的には正しかったのですが、無意味でした。なぜなら、本当の問題は、そもそもどんな問いを尋ねるべきかを見つけることだったからです。

バイブコーディングも同じです。プロンプトがすべてですが、コンテキスト管理も同じくらい重要です。曖昧なプロンプトには曖昧なコードが返ってきますし、適切なファイル、ドキュメント、例をコンテキストとして提供しなければ、モデルは本当に必要なものを理解できません。もしあなたがコーディング、アーキテクチャ、システム設計を理解している人なら、詳細なプロンプトを作成し、適切なコンテキストを選んで、LLMを優れた解決策へと導くことができます。しかし、何を求めるべきか、どんなコンテキストを与えるべきかがわからないなら、AIにもわかりません。

実はこれこそが、バイブコーディングが経験豊富な開発者にとって非常に強力である理由です。私たちは良いコードがどのようなものかを知っており、落とし穴も理解していて、モデルがそれらを避けるように促すプロンプトを書けるからです。技術的背景のない初心者にとっては、これは本当の制約になります。動くコードは得られるかもしれませんが、何が間違っていたのか、次に何を尋ねるべきかがわからなければ、行き詰まってしまいます。

バイブコーディングだけでは不十分なとき

最新のAIモデルは印象的ですが、万能薬ではありません。バイブコーディングは本番環境でも使えますが、それは本気で取り組む場合に限られます。堅牢なユニットテストが必要です。システムが何をすべきかについての明確な真実の源が必要です。壊れたりずれたりしたときにそれを検出する必要があります。そして、ハッカーのマインドセットが必要です。既成概念にとらわれずに考え、バイブコーディングしたプロジェクトを予想外の方法で壊そうとしてみてください。どんなエッジケースを見落としているでしょうか? どんなセキュリティ脆弱性を誰かが悪用できるでしょうか? これが、単に動くだけのコードと、本当に堅牢なコードを分けるものです。

ただし、ここで重要なのは、AIがあなたを所有しているのではないということです。あなたがAIを所有しているのです。生成されたものをそのまま受け入れてはいけません。レビューしてください。テストしてください。壊してください。そして正直に言えば、コードベースのある部分については、昔ながらのコーディングに戻る必要があります。集中して、深く考えて、自分で書いてください。バイブコーディングは物事を速くしますが、重要な場面で本物のプログラミングの代わりにはなりません。

もう一つ学んだことがあります。時には、AIとのセッションを終えて、新しいセッションを始める必要があるということです。会話履歴がどんどん大きくなるにつれて、モデルの性能は低下します。ミスが増え、生成されるコードの一貫性が下がり、幻覚もより頻繁に起こり始めます。これに気づかずに止めなければ、これらの誤りは互いに積み重なり、事態は徐々に悪化していきます。何度も何度も複写された文書を読もうとしているようなものです。新しく始めれば、物事はきれいで鮮明に保たれます。

バイブコーディングされたプロジェクト

以下は、バイブコーディングの手法を使って私が作った2つのプロジェクト、stairsrepo)とtranscendentalrepo)です。主にプロンプトから生成され、手作業はコンテキストの提供、デバッグ、そしてGitLab Pagesへのデプロイに限定されていました。これらは、バイブコーディングを通じて創造的なアイデアとコードを組み合わせることで何が可能になるかを示す、楽しい静的サイトの実験です。どちらもGitLabでホストされています。

プロジェクトを見る

Stairs

Transcendental