- AI支援を活用したソフトウェア作成プロセスを antirez は「Automatic Programming」と定義し、これはまもなくソフトウェア開発の標準になると展望している
- 同じ LLM を使っていても、人間の直感、設計、継続的な方向修正によって成果物は大きく変わる
- Vibe coding は大きな理解なしに AI に任せるやり方だが、自動プログラミングは 開発者の明確なビジョンと制御 を前提とする
- AI が生成したコードも、人間が蓄積した事前学習データと判断に基づくものであり、成果物の所有権は開発者にある
- プログラミングはますます自動化されるが、アイデアとビジョンは依然として人間の領域として残っている
Automatic Programming の概念定義
- AI 支援によってソフトウェアを書くプロセスを 自動プログラミング (Automatic Programming) と名付けている
- この方式は、まもなくソフトウェア作成の標準的なプロセスになるだろう
Vibe coding との違い
- バイブコーディング (Vibe Coding) は、プロセスにまったく関与せずに AI でソフトウェアを生成する方式
- 欲しいものを非常に一般的な言葉で説明すると、LLM は学習データとその実行時の特定のサンプリングに従って、自然に思い浮かぶ最初のアイデア/設計/コードを生成する
- バイブコーダーは、せいぜい動かない部分や期待と違う部分を報告する程度
- 自動プログラミング は高品質を追求し、作り手のソフトウェアに対するビジョンに厳密に従う方式
- このビジョンは 多層的 であり、特定の処理を正確にどう行うかから、特定の関数をどう書くかを AI に直接指示することまで含む
- 何をするのか も中核的な要素
人間の要素の重要性
- 同じ LLM でも、プロセスを導く人間の 直感、設計、継続的な方向修正、ソフトウェアに対するアイデア によって結果は大きく変わる
- 「Claude がこのソフトウェアをバイブコーディングしてくれた」という表現は適切ではない
- 何が起きているかを理解しながら実際にソフトウェアを生み出しているのであれば、それは 自分が作っているソフトウェア である
コード所有権に関する見方
- 事前学習データは LLM が学習する唯一の要素ではないが(RL も大きな比重を占める)、それも人間が生み出したもの
- AI 生成コードを「自分たちのもの」と呼ぶことはできるし、そう呼ぶ権利がある
- 事前学習は、多くの個人が単独では決してできないことを可能にしてくれる 集合的な贈り物 である
- まるである種の 集合精神 でつながっているかのようだ
- 自動プログラミングで生成したコードは 自分のコード、自分の成果物、自分の生産物 であり、誇りを持ってよい
Redis の事例
- Redis には、特別に技術的な目新しさが多いわけではない
- 初期段階では、有能なシステムプログラマなら誰でも書ける 基本的なデータ構造とネットワーキングコードの組み合わせ にすぎない
- それでも非常に有用なソフトウェアになった理由は、そこに込められた アイデアとビジョン にある
結論
- プログラミングはすでに自動化されたが、ビジョンはまだ自動化されていない
1件のコメント
Hacker News の意見
業界経験30年以上で、最近は 仕様駆動開発(spec-driven development) に深くハマっている
Claude Code と GPT-5.2(CoPilot)を使って要件を生成し、何度も 自己レビュー(self-review) を繰り返しながら仕様を磨き上げる
完成した仕様から Claude Code が実装計画とコードを書けば、20分以内に主要機能が完成する
昔の防衛産業時代の ウォーターフォール方式 を思い出させるが、AIのおかげではるかに速く洗練された「拡張カスケード(augmented cascade)」アプローチが可能になったと感じる
アジャイルは、こうした条件が不可能な会社が生き残るために素早く製品を出すための対応だった
参考になる公開仕様(spec)の事例があれば知りたい。過去の世代が John Carmack の Quake コードを崇拝したように、次の世代は優れた仕様を称賛することになる気がする
人間はあらゆる複雑さや例外状況を予測できないからだ。実際に作ってみると「これは考えていなかったな」という部分が必ず出てくる
すでに要件が明確なら、無理に必要ではない
ただし下位チームの代わりに LLM を活用する点が違う
関連参考資料: Design by Contract (Goodreads), 原文 PDF
「事前学習(pre-training)は人類の集団的な贈り物」という表現には同意しない
盗まれたものなら贈り物ではない
LLM が生成したコードでも、私が責任を持って管理するならそれは私のコードだと思う
問題は、書き手が 責任を回避 するときに起きる
Claude Code と Opus 4.5 を使ってみて、私も似た結論に達した
私はこれを 「禅コーディング(zen coding)」 と呼んでいる。コードベースを禅庭のように扱い、仕様を細かく設計し、1行ずつレビューする
AI は設計者ではなく 道具 として動くべきだ
明確な仕様を持つ人は、AIからはるかに高品質なコードを得られる
Vibe coding は直感的な実験であり、Zen coding は職人の修練だ
「Claude がくれた」といった言い方を聞くと、まだ ドラフト感のあるコード なのだろうという予感がする
ツールを責めたり謝ったりせず、成果物をもっと良くすればいい
「事前学習は人類の贈り物」という表現には違和感がある
多くのオープンソース開発者は、自分のコードが LLM の学習に使われることを望んでいなかった
LLM が生成したコードの中には、私が見た 本やブログのコード をほぼそのまま写したケースもあった
少なくとも出典を明かすのが道義的だと思う
GPL コードで LLM を学習させたなら、その成果物も GPL として公開すべきだという解釈も可能だ
たとえば カフカ は自分の原稿を燃やしてほしいと望んだが、今では文学の古典になっている
1950〜60年代の「自動プログラミング」は、実際にはコンパイラを意味していた
1980年代の 4GL はドメイン特化の高水準言語であり、今の LLM は自然言語仕様からドラフトを生成する段階だ
結局、人間は依然として 反復的な修正と設計変更 を通じて完成度を高めなければならない
今は 職人級の開発者(artisanal coder) の最後の世代を見ているのかもしれない
Antirez のような職人は、人間の限界を超えた概念を扱い、Redis のようにシンプルで美しいソフトウェア を作り出す
AI は人間にはできない速度でコードを作るが、それは筆やキャンバスではない
新しい世代は、まったく異なる形の職人になるだろう
私も怖いが、この新しい道具を受け入れながら 新しい工芸の時代 を試している
AIをうまく扱う能力が加わるだけで、既存の知識が不要になるわけではない
Antirez の文章で、「vibe coding と automatic programming の違い」を明確に区別していた点が印象的だった
これは、建築家が手で図面を描いていた時代から BIM, CAD へ移行したのに似た変化だ
AI時代の開発者はコードを書く量が減るのではなく、価値の焦点が変わった のだ
「vibe coding vs automatic coding」は 二分法ではなくスペクトラム だ
1つのプロジェクトの中でも複数段階のアプローチを混ぜられる
重要なのは、道具を 批判的に活用 し、継続的に改善する姿勢だ
これを「spec strumming」と呼ぶ人もいる