概要
- "vibe coding" はAndrej KarpathyによるAI支援型コーディングの新語
- レガシーコード とテックデットの問題点を指摘
- プロトタイプや使い捨て開発 にはvibe codingが有効
- 大規模・長期運用 には慎重なAI活用が必須
- AI時代でも理論構築能力 の重要性を強調
「vibe coding」とレガシーコード
- Andrej Karpathy が提唱した「vibe coding」は、AIがコードを書く際に「コードの存在すら忘れる」ほど直感的な開発スタイル
- 誰も理解できないコードは legacy code(レガシーコード) と呼ばれ、 テックデット の温床
- レガシーコードは 保守性の低下 や バグ混入リスク を招く
- プログラミングの本質は 理論構築 であり、単なるコード量ではない
vibe codingの適用範囲
- vibe coding は プロトタイプ や 使い捨てアプリ に最適
- 例:週次成長率計算アプリ、NYT Connections評価ツール、プロポーズ用アプリ
- 小規模・短命なプロジェクトなら、 理解度が低くても問題なし
- コードの理解度が低いままでも、 迅速な開発体験 が可能
vibe codingのスペクトラム
- vibe coding には理解度の幅が存在
- エンジニアは「Webアプリ+永続DB」と指定するだけで 理解度が高い
- 非エンジニアは「アプリ」とだけ依頼し、 技術的背景を理解しない
- 大規模プロジェクト を非エンジニアがvibe codingで作るのは 危険
- 例えるなら「クレジットカードを子供に渡す」行為
- 最初は快感 だが、後で ツケ(デット) がやってくる
維持・運用を見据えたAIコーディング
- 2025年以降、 本格的なシステム開発 には慎重なAI活用が必要
- Andrej Karpathyの言葉:「 AIは知識豊富だが、しばしば誤魔化す。慎重・防御的・学習重視で使うべき」
- Val Town ではAIアシスタント「Townie」を活用
- vibe coding にも、「 慎重な編集」にも対応
- 使い分け が重要
AIと人間の役割
- AIの進化 でコーディング環境は変化中
- それでも 理論構築 や コードの読解力 は不可欠
- 非エンジニアがAIだけで大規模開発 するのはリスクが高い
- 最終的には 人間自身がコードを読む必要性
- 理解不能なレガシーコード修正より、最初から書き直す方が楽な場合も多い
謝辞・参考
- 本稿は「The Role of the Human Brain in Programming」講演の内容を要約
- Emily (フィアンセ)、 Malte & Rippling (会場提供)、 Geoffrey Litt 他多くの協力者に感謝
- Simon Willison、 Andrej Karpathy の冷静なAI論にも言及
面白いことが起きてるね。エンジニアリングについてあまり知らない人たちや、もっと知ってるはずの人たちが広めてる誤ったナラティブがネットで流れてる。彼らは、ジュニア開発者が今や10倍も生産的で、プロジェクトマネージャーが自分でコードを出荷してるって主張してる。さあ、目を閉じて5秒間、そのコードがどんなものか想像してみて。100%レガシーで、使い捨てのコードだよ。問題はAIでも、PMがFigmaをコードに変換することでも、ジュニア開発者が必死にプロンプトを打つことでもない。真の問題は、期待と結果の間にあるギャップなんだ。そのギャップが存在するのは、人々がエンジニアたちが何年もかけて正しく定義した用語を混同しているから。 - リーンプロトタイプは使い捨てプロトタイプとは違う - MVPはリーンプロトタイプとは違う - そして、製品はMVPとは違う リーンプロトタイプは出発点で、アイデアをテストして洗練するための粗いモデルなんだ。それがうまくいけば、MVPに進化するかもしれない。MVPは、コアな仮定を証明し、市場に本当にニーズがあることを示すと、製品になる。そして、使い捨てプロトタイプはその名の通り、初回使用後に捨てるもの。バイビングツールは使い捨てプロトタイプを作るのに最適で、LLMを活用したIDEは実際の製品を作るのに向いてる。今のところ、エンジニアだけがIDEの外でLLMプロンプトを使ってリーンプロトタイプを作れる。他の人たちは、ただ使い捨てコードの上にシンプル(で動いてる?)ソフトウェアを作ってるだけだよ。