13 ポイント 投稿者 GN⁺ 2025-04-01 | 1件のコメント | WhatsAppで共有
  • 開発中に AI とともに「フロー状態(Flow)」を体験する Vibe Coding について、反省的に考察した文章
  • この2か月、Vibe Coding に依存してきたが、生産性とコストの面で満足できないと判断した
  • Vibe Coding は特定の開発方法論ではなく、ある種の状態や感情を中心とした開発スタイル
    • AI コーディング支援ツール(Cline、Roo Code、Cursor など)に依存し、流れに任せてコードを書く
    • 明確な計画なしに直感と没入感だけで作業し、ドーパミンに導かれて「進んでいる感覚」を追い求める

Vibe Coding の問題点

  • 時間の浪費: 最初は速く進んでいるように見えるが、構造がないためエラーや変更に振り回される
  • コスト増加: AI のコンテキストウィンドウが大きくなるほど API 呼び出しコストも増える
    • 例: 数十万トークンの送信、数千行の生成 → 結果としてコスト負担が大きい
  • 手戻りの増加: 初期に素早く作ったコードが結局は目的に合わず、全体を作り直さなければならない状況が発生する

利点もある

  • 繰り返しのデバッグと再理解を通じて、コード構造や言語そのものへの理解が向上する
  • 筆者は Python 学習に集中しており、エラーを理解し、モデルを正しく導く能力が少しずつ身についてきた

Vibe Coding vs. AI Chat vs. Web検索

  • Vibe Coding: 初期の探索や実験的な試みには有用だが、構造的な開発には不向き
  • AI Chat (ChatGPT など): 素早い回答やボイラープレート生成には有用だが、盲目的に信頼するのは危険(AI のハルシネーションの可能性あり)
  • Web検索: 概念や正確な解決策を探すのに不可欠だが、時間がかかることがある

現在好んでいる組み合わせ: Gemini + Open WebUI

  • Gemini Code Assist (VS Code で使用):
    • 無料で、テストコード生成とエラー修正に強い
    • ユニットテストを初めて行う人に特に有用
  • Open WebUI:
    • さまざまなモデルをサポートし、カスタマイズ可能
    • 特定の目的(コーディング、論文、特許など)に合わせたプロンプト設定が可能
    • テキスト整形、テーブル変換など、コスト対効果の高い作業に適している

非効率な選択: 無制限 AI エージェント

  • Roo Code、Cline などは長時間動作し、トークン使用量が多い
    • 特に Claude ベースは性能は良いが、コストが過度に高い
  • その代わり、Gemini 2.0、DeepSeek V3/Chat などは無料または低コストで、性能も十分

結論: バランスを探っている途中

  • Vibe Coding が完全に悪いとは言えない
    • 創造性の発揮やアイデア探索には役立つ
  • しかし、持続可能な開発スタイルではない
    • 締め切りとコストを前にすると、現実的な代替手段が必要になる
  • 筆者の現在の最適な組み合わせ:
    • Gemini Code Assist(無料、ユニットテストに強い)
    • Open WebUI(コントロール性とコスト面で有利)
  • 今後の計画:
    • Perplexity のような有料チャットアプリを検討($20/月、無料ティアも存在)
    • API コストが月 $30 以上なので、構造的なコスト削減が必要
    • 長期的にはローカルモデルの実行も検討し、より効率的なモデルが出れば切り替える可能性がある

1件のコメント

 
GN⁺ 2025-04-01
Hacker Newsの意見
  • 他の人たちがLLMsを使ってコーディングする方法についての報告を読むのは興味深い

    • 個人的には、LLMsはプログラミングの「不気味の谷」を越えて、生産性が大きく向上した
    • 問題と制約条件をうまく説明すれば、数千行のコードを正確に生成できる
    • LLMが生成したコードをレビューすることが重要で、具体的に要求すればうまく解決される
    • 「解決策を実装する計画を話してほしい」という依頼が有用
    • 結果は驚くべきもの。スタイルは異なるかもしれないが、構造的には非常に正確
  • Vibeコーディングは、プロダクションコードの作成ではなく、探索的プロトタイプに適している

    • 個人的なツールには問題ないが、他人に配布するコードには適していない
    • コードに対する理解と反復が必要
    • Vibeコーディングは、コードを気にしない行為として定義される
  • Vibeコーディングは、「流れ」に乗って簡単にコードを生成すること

    • 映画の中のハッカーの場面がChatGPTを使っていたら、もっとかっこよかっただろうという冗談
    • コードを実行できることを基準にコードの正確さを判断するのは良くない
    • 少なくともLLMの出力をレビューすることが重要
  • Vibeコーディングはコーディングとは関係がないと思う

    • 非専門家でも小規模なコードは作れるが、大規模システムは難しい
    • LLMsはボイラープレートコードの生成には有用だが、問題が発生したときには修正が必要
    • 新しい「vibe coders」は問題を理解せず、繰り返し試行する
  • Claude Codeを使うのに1日30ドルを費やしている

    • Vibeコーディングに多くの費用をかけている
  • ツリー構造で作業することが有用

    • 大きな絵を描いてから細部を埋めていく方式
    • LLMsと一緒に作業するときに効果的
    • 構造的ではあるが、それでもVibeコーディングと見なされる可能性がある
  • Karpathyはネーミングがうまい

    • 新しい名前がうまく定着する
  • LLMを多用しているが、Vibeという概念はオンラインのジョークから始まった

    • 質問をうまく構成することが重要で、これはコーディングに似ている
    • テストが重要で、LLMを通じて学習が速く進む
  • 自分の考えを形式言語で表現することには価値がある

    • 数学は自然言語でも表現できるが、形式化の明確さと簡潔さが有用
    • コードは曖昧なアイデアを明確にする手段
    • すべてのシステムが曖昧な言語で書かれるのは望ましくない
  • AIチャットはWeb検索よりも優れた結果を提供する

    • SQLクエリを書くとき、Geminiの方がより良い結果を提供する