スタックを選ぶ: 言語をひと目で
AIにソフトウェアを作らせるとき、選ぶ言語は今でも大いに重要です。コードを書くのはAIですが、その結果と付き合うのはあなたです。どれだけ速く出荷できるか、デプロイがどれだけ簡単か、どれだけ頻繁に壁にぶつかるか。よい知らせは、これらの言語のどれかを習得する必要はないということです。まともな選択をし、AIがあなたをつらい方向へ導いているときにそれを見抜けるだけの知識があれば十分です。
この章では、気にかける価値のある言語を一通り見ていきます。それぞれが本当に得意とすること、どこで噛みついてくるか、そして — vibe codingにとって決定的に重要な — AIアシスタントがどれだけうまく扱えるかです。最後に、目的別に選ぶためのきわめてシンプルなガイドで締めくくります。
始める前に一言。AIアシスタントは、ニッチな言語よりも、公開コードが山ほどある人気言語の方がはるかに得意です。これは小さな差ではありません。プロジェクトがスムーズに進むかどうかを左右する、たいていは単独で最大の要因です。人気は一つの機能なのです。ある言語とその主要フレームワークが公開リポジトリに何百万回も現れるなら、AIはあらゆる一般的なパターン、典型的なエラー、慣用的な修正を見てきたことになります。そうでなければ、その希少さの代償を、失敗した試みと自信たっぷりに聞こえる戯言で払うことになります。
言語名を見る前に、頭に留めておきたい一枚の絵があります。あなたが書くコードは、機械が実際に走らせるものでは決してありません。その間にある何かが、あなたのテキストを動くソフトウェアに変えます — コンパイラ(あらかじめ全部を翻訳して実行ファイルにする)か、インタプリタ(一行ずつ読んで実行する)です。選ぶ言語が、どちらの経路をたどるかを決めます。
あなた 中間 マシン
┌────────┐ ┌──────────┐
│ ソース │──┬──▶ COMPILER ──▶ binary file ──────▶ │ CPU上で │
│ コード │ │ (Go, Rust) (one file) │ 動作 │
│ │ │ │ │
└────────┘ └──▶ INTERPRETER ──1行ずつ ─────────▶ │ 出力を │
(Python, JS) 読む │ 表示 │
└──────────┘
compiled = 先に翻訳、後で実行
interpreted = 実行しながら翻訳
