3 ポイント 投稿者 GN⁺ 2025-02-04 | 1件のコメント | WhatsAppで共有
  • LLMベースの開発環境で、ユーザーが直接コードを書かず、対話と命令によって結果を生み出す新しい方式である**「バイブコーディング」**の概念を提示
  • Cursor ComposerSuperWhisperを使い、音声コマンドでコードを修正し、「サイドバーのパディングを半分にして」のような単純な依頼だけで作業を実行
  • コード変更履歴(diff)を読まずに**「Accept All」で一括承認し、エラーメッセージはそのままコピーして貼り付けて解決する自動修正フロー**を使用
  • コードは次第に複雑になって理解しづらくなるが、週末向けの実験プロジェクトレベルでは十分に機能
  • 2つのLLMがリアルタイムで対戦するBattleshipゲームも同じ方式で制作され、「4oは4o-miniより強い」という観察にも言及

バイブコーディングの概念

  • 「バイブコーディング(Vibe Coding)」は、コードを書く行為よりも流れと感覚に集中する開発手法
    • ユーザーはコードの細かな構造を気にせず、LLMが提案する結果をそのまま受け入れる
    • 「コードが存在するという事実さえ忘れる」という表現で、AI中心の開発体験を強調

使用ツールと作業方式

  • Cursor ComposerSonnetモデルを活用してコード生成を実行
    • SuperWhisperを通じて音声でComposerと対話し、キーボード入力はほとんど使わない
  • 「サイドバーのパディングを半分にして」のような単純な命令で修正を依頼
    • コード変更履歴(diff)を確認せず**「Accept All」**で承認
    • エラーメッセージは別途説明せずにコピーして貼り付ければ、たいてい解決される

コード管理と限界

  • コードが大きくなるほど、理解が難しいレベルまで複雑化する
    • バグが解決しない場合は、回避したりランダムな修正依頼を繰り返したりして問題を取り除く
  • このアプローチは短期的・実験的なプロジェクトには適しているが、複雑なシステムには限界がある

実験プロジェクト: Battleshipゲーム

  • 約1時間の「バイブコーディング」でBattleshipゲームを制作
    • 2つのLLMモデルがリアルタイムで互いに対戦する構造
    • 「4oは4o-miniより強い」という非公式な観察結果に言及
  • 具体的な統計や性能比較の数値はまだ確保されていない

全体の文脈

  • LLMの進化により、開発者が細かなコードを直接扱わなくても動作するアプリケーションを素早く生成できることを示している
  • 「バイブコーディング」は、AI中心の新しいプログラミングパラダイムを実験的に示す事例として評価できる

1件のコメント

 
GN⁺ 2025-02-04
Hacker Newsの意見
  • 毎年、ソフトウェアの品質基準はこれ以上下がりようがないと思うのに、その考えが毎回間違っていたと気づかされる

    • どうせちゃんとやらないことを、わざわざやる理由が理解できない
    • まるで雑に切った木材を釘で打ちつけて、椅子もどきのものを作って座るようなもの
    • **「とりあえず座る場所さえ必要なときもある」**という意見もあるが、それでも最低限の完成度は必要だと感じる
    • 英語に自信がなく、LLMに完全に依存するようになった人もいるが、その結果として自己表現力と自信を失っていくのを見た
    • ソフトウェアでは、最初から『椅子』を作っていると分かっているケースはまれ
      • 結局は探索的プログラミングやプロトタイピングの別名にすぎない
    • ときには目的地そのものよりも、ただ早くどこかにたどり着きたい気持ちが重要なこともある
      • 疲れて少し床に座る人をたしなめるようなものだ
    • 最近は、コードが実際のハードウェア上で動くという現実感が失われている気がして心配だ
      • 若い開発者の多くが、コードの物理的な結果を理解していないことがある
      • AIとそのハイプはいずれ崩れると思うが、品質を守る戦いは続けなければならない
  • 私もこういう形で軽いプロジェクトをやるときは楽しさを感じる

    • ただしセキュリティだけは絶対に手を抜けない
    • AIコーディングアシスタントが認証なしのAPIを作ったり、XSSの危険があるテンプレートを生成したことが何度もあった
    • 毎日LLMを使っているが、セキュリティエンジニアの役割は今後も十分に残ると確信している
  • こういうアプローチを見ると、まるで**『食べてコーディングする人』**が成果物を提出しているように感じる

  • こういうやり方でコーディングを始めると、難しい問題を解く力が衰えるのではないかと心配になる

    • ただ、別の人は必要な部分は今でも手作業で丁寧にやれると言う
    • その代わり、新しいことを試すための参入障壁が下がり、ずっと自由に探索できるようになる
  • 最近は最初からこうしたやり方で学ぶAIネイティブ開発者が増えている

    • もはやコーディングというより、AIコーダーの管理に近い時代になった気がする
  • 自然言語の命令で修正できるWYSIWYGのようなツールには、RADツールの限界のような急激な難易度の崖がありそうだ

  • 「こういうやり方で学ぶべきではない」と言う人もいるが、私は努力に対する完成度を釣り合わせることが重要だと思う

    • Vibe Codingは学習と探索に向いた方法だ
    • 新しい努力–完成度スペクトラムを開く可能性がある
    • ただしFred Brooksの言う通り、最初の試みが不十分なら思い切って捨てられるべきだ
      • LLMが作った最初の実装に執着すると、問題を正しく理解しないまま誤った基準点に縛られるおそれがある
  • CSSくらいならVibe Codingで十分だと思う

    • ただ、別の人はアクセシビリティレスポンシブデザインを考えると、そこまで単純ではないと反論している
    • よくできたCSSはむしろ簡潔で、保守しやすい
    • AIを挟むことがかえって邪魔になる場合もある
    • また別の人は、Claudeで小さなWebユーティリティを完全に実装した経験があると言う
    • ある人は、Reactベースの検索DSLGUIパイプラインエディタを同じ方法で作ったとして、このアプローチは単なるCSSの範囲を超えていると説明している