バイブコーディング

サムネイル

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

バイブコーディングは、2024/2025年にアンドレイ・カルパティによって導入されたAI駆動のプログラミング手法です。バイブコーディングでは、自然言語のプロンプトで自分が望むことを説明し、通常は大規模言語モデル(LLM)がほとんど、しばしばすべての動作コードを生成します。時間がある場合は、バイブコーディングの技法リック・ルービンが適応したものをチェックして、**バイブコーディングの方法**についてもっと学んでください。

この新しい手法の大きな利点の一つは、アクセスのしやすさです。コーディングの経験がない人でもプロジェクトを構築でき、経験豊富な開発者は新しいアイデアを完全にコミットする前に迅速にプロトタイプを作成できます。これは特にスタートアップにとって役立ちます。欠点は、開発者が生成されたコードがどのように機能するかを完全に理解しない可能性が高いことです。小さなサイドプロジェクトでは問題ありませんが、プロダクションレベルのソフトウェアでは長期的な問題や技術的負債につながる可能性があります。

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

ただし、これらのツールとモデルはお金がかかります。従来のコーディングでは、主に時間で支払っていますが、バイブコーディングでは財布で支払っています。そして、何をしているのかわからない場合は、財布と時間の両方で支払うことになります。このページの各プロジェクトは、構築するのに約**$10から$20**かかります。たくさん実験する場合は、これが積み重なります。これらのモデルが改善され、より効率的になるにつれて、コストは最終的に下がると思います。今のところ、バイブコーディングがあなたのプロジェクトにとって意味があるかどうかを決定する際に考慮すべきことです。

可能性に興味を持ち、私自身でバイブコーディングを試して、この原則を実際のプロジェクトを通じて探求するためにこのページを作成しました。私は単に製品を構築しているだけでなく、バイブコーディングが本当に何ができるのかをテストし、示しています。これは単なる楽しみのためですが、これらのモデルが改善され続ける中で、将来のコーディングがどのように見えるかの一端を垣間見ることができます。

無限の猿の定理

作家

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

馬鹿げているように聞こえますよね?でも、ここが面白いところです。バイブコーディングはそれに似ていますが、猿の代わりにAIモデルがあり、タイプライターの代わりにコーディング言語があり、シェイクスピアの代わりに動作するソフトウェアを得ています。

考えてみてください。大規模言語モデルは、数十億行のコード、パターン、例で訓練されています。LLMにプロンプトを与えるとき、それは実際には人間の開発者のように問題を一歩一歩「考えて」いるわけではありません。代わりに、訓練中に学んだパターンに基づいて、次に最も可能性の高いトークンを予測しています。統計的に正しいと思われるものに基づいてコードを生成することで、教育的な推測を行っているのです。

そして、なぜか、ほとんどの場合、うまくいきます。モデルは実際にコンパイルされ、実行され、あなたの問題を解決するコードを出力します。理解を通じてではなく、絶対的に大規模な確率的パターンマッチングを通じてです。まるで宇宙の最も洗練されたランダムテキスト生成器が「正しい」答えを見つけたかのようです。しかし、ここでの違いはスピードです。あの猿たちは文字通り無限の時間が必要です。あなたのAIは?数秒または数分で到達します。

したがって、ある意味で、バイブコーディングを使用すると、数百万行のコードパターンをモデルに凝縮して、ソリューションを生成しています。これは意識的な問題解決ではなく、統計的な魔法です。そして、これがまさにそれを強力にし、正直に言うと、コードが実際に何をしているのかを理解することが依然として重要な理由です。

質問が答えよりも重要

ここで重要なことがありますが、しばしば見落とされがちです。バイブコーディングは、どんな答えを得ることではなく、正しい質問をすることです。銀河ヒッチハイカーガイドディープ・ソート・スーパーコンピュータを思い出してください。宇宙、生命、すべての究極の質問の答えを計算するのに数百万年を費やし、最終的にあなたに数字42を与えました。答えは技術的には正しかったですが、実際の問題は最初に何を質問するかを見つけることだったため、役に立たなかったのです。

バイブコーディングも同じように機能します。あなたのプロンプトはすべてですが、コンテキスト管理も同様です。曖昧なプロンプトは曖昧なコードを生み出し、正しいファイル、ドキュメント、または例をコンテキストとして提供しないと、モデルは実際に何が必要かを理解しません。コーディング、アーキテクチャ、システム設計を理解している人であれば、詳細なプロンプトを作成し、LLMを優れたソリューションに導くための適切なコンテキストをキュレーションできます。しかし、何を求めるべきか、どのコンテキストを提供すべきかがわからない場合、AIも同様にわかりません。

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

バイブコーディングが不十分なとき

最新のAIモデルは印象的ですが、銀の弾丸ではありません。バイブコーディングはプロダクションで機能することがありますが、それには真剣である必要があります。堅牢なユニットテストが必要です。システムが何をすべきかの明確な真実のソースが必要です。物事が壊れたり、ずれたりしたときにキャッチする必要があります。そして、ハッカーのマインドセットが必要です。箱の外で考え、意図しない方法でバイブコーディングされたプロジェクトを壊そうとしてください。考慮していないエッジケースは何ですか?誰かが悪用できるセキュリティの脆弱性は何ですか?これが、単に動作するコードと実際に堅牢なコードを分けるものです。

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

私が学んだもう一つのことがあります。時には、AIとのセッションを終了し、新しいセッションを開始する必要があります。会話の履歴が大きくなるにつれて、モデルのパフォーマンスは低下します。より多くの間違いを犯し、より一貫性のないコードを生成し、より頻繁に幻覚を見始めます。これを見逃して止めないと、これらのエラーは互いに重なり合い、物事が徐々に悪化します。何度もコピーされた文書を読むようなものです。新たに始めることで、物事をクリーンでシャープに保つことができます。

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

以下は、バイブコーディングの手法を使用して構築した2つのプロジェクト、stairsリポジトリ)とtranscendentalリポジトリ)です。主にプロンプトから生成され、手動作業はコンテキストの提供、デバッグ、GitHub Pagesへのデプロイに限られています。これらは、バイブコーディングを通じて創造的なアイデアとコードを組み合わせることで可能になることを示す楽しい静的サイトの実験です。両方ともGitHubにホストされています。

プロジェクトを見る

ステアーズ

超越的