バイブスでコーディング
Andrej Karpathy(OpenAI共同創業者)がXで提唱した“vibe coding”の概念が、現在のAIエージェントを使った「ノリや雰囲気、感性」などを重視したコーディングスタイルをうまく言語化していて面白い。
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…
— Andrej Karpathy (@karpathy) February 2, 2025
翻訳:新しい種類のコーディングがあって、私はこれを“vibe coding”と呼んでいます。そこでは完全に“vibe(雰囲気、直感)”に身を任せ、指数関数的成長を歓迎し、コードそのものが存在していることさえ忘れてしまいます。これは、LLM(例えば、Cursor ComposerとSonnet)があまりにも優秀になってきたから可能になっています。また、SuperWhisper(音声をテキスト変換するアプリ)を使ってComposerと話すので、キーボードをほとんど触る必要がありません。『サイドバーのパディングを半分に減らして』みたいな、めちゃくちゃ簡単なリクエストを投げることもあります。面倒くさがりなので自分で探すのが億劫なんです。差分(diffs)ももう見ません、常に『すべて受け入れる(Accept All)』です。エラーメッセージが出たら、コメントも付けずにそのままコピー&ペーストするだけです。たいていそれで問題が解決します。コードは私の通常の理解を超えるほど成長しますが、しっかり読み込む必要があるのでしょう。時々LLMがバグを修正できないこともありますが、その場合は迂回するか、ランダムな変更を加え続けるまで試します。週末の使い捨てプロジェクトには悪くありませんが、かなり面白いです。私はプロジェクトやウェブアプリを“構築”しているわけですが、実際にはコーディングしているわけではなく、ただ見たり、言ったり、実行したり、コピー&ペーストしたりしているだけです。そして、ほとんど問題なく動きます。
vibe codingはコーディングでは以下のような方針で行う
- 自力でコードを書こうとせずにAIに指示をするだけ
- AIが提案したコードはノールックマージ
- 上手くいかなかったらエラーメッセージガチャを回す
最初これを皮肉で言っているのか? と思って読んだがどうやらそうではないらしく自身でもこれを実践しているらしい。以下が実際に作ったアプリ。LLMが読んでる書籍の説明をしてくれる。
Last ~hour I built a custom LLM reader app so while I read Wealth of Nations I can ask questions about any paragraph. When you click a paragraph and "Ask" it calls an LLM, builds context window of what this is, copy pastes the full chapter, the paragraph, and the question. Works… pic.twitter.com/gUXShyVj14
— Andrej Karpathy (@karpathy) February 2, 2025
翻訳:先ほどの約1時間で、カスタムなLLMリーダーアプリを構築しました。『国富論』を読みながら、どの段落でも質問できるようにするためです。段落をクリックして『Ask(質問する)』を押すと、LLMが呼び出され、段落のコンテキストウィンドウを構築します。そこには、章全体、該当段落、そして質問をコピー&ペーストして含めます。すごくうまく動きます。
私が以前にClineやAI搭載エディタユーザーのことを「勢いやノリで開発している」とか「高速にコピペプログラミングを自動化している」と評したことがあったが、それがピースなAIのバイブスでポジティブに表現されていて流石だ。
vibe coding pic.twitter.com/oz6j8KAwJc
— swen (@swen_sjn) February 3, 2025
バイブスを感じろ
この投稿を受けて各所で関連ポストが発生していた(キャッチーな名前がついてプチバズったことで議論が進むやつ)。その中で私が注目したのはWhat is Vibe Coding? How Creators Can Build Software Without Writing Codeで紹介された「Cursorで100個のミニツール作った」と自称するjustbuildthings.comのストーリー。これは作者がコーディング・スキルゼロのところから極めて短期間で開発して、結果としてproducthuntで3位を獲得したらしい。どの時点で今の完成度に至ったのか不明だがよくできている。
zero coding skills, my web app ranked #3 on producthunt
by u/coconutappl in nextjs
このようなAIエディタを使ったvibe codingを好む層は、過去にはノーコードツールに夢中になっていた人たちと重なる。私はノーコードを「クラウドプラットフォームが提供する”設定ブロック”を使ったGUIプログラミング」と理解していたが、それが発展したカタチが今のvibe codingなのかもしれない。
しかし今度はコードは存在し、プログラミングは薄れている。プログラミングとは何かという問題になる。とりあえずノーコードツールからエクスポートされたコードよりはバイブスで作成されたアプリケーションの残骸コードの方が保守しやすいだろう。