26 ポイント 投稿者 GN⁺ 2026-02-02 | 1件のコメント | WhatsAppで共有
  • 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件のコメント

 
GN⁺ 2026-02-02
Hacker News の意見
  • 業界経験30年以上で、最近は 仕様駆動開発(spec-driven development) に深くハマっている
    Claude Code と GPT-5.2(CoPilot)を使って要件を生成し、何度も 自己レビュー(self-review) を繰り返しながら仕様を磨き上げる
    完成した仕様から Claude Code が実装計画とコードを書けば、20分以内に主要機能が完成する
    昔の防衛産業時代の ウォーターフォール方式 を思い出させるが、AIのおかげではるかに速く洗練された「拡張カスケード(augmented cascade)」アプローチが可能になったと感じる

    • ウォーターフォールがうまく機能するには、長期的視点があり、仕様作成者と開発者が同一である必要がある
      アジャイルは、こうした条件が不可能な会社が生き残るために素早く製品を出すための対応だった
    • 私もプログラミングの未来は 仕様中心 になると思う
      参考になる公開仕様(spec)の事例があれば知りたい。過去の世代が John Carmack の Quake コードを崇拝したように、次の世代は優れた仕様を称賛することになる気がする
    • どれほど精巧な仕様でも、現実との衝突を避けるのは難しい
      人間はあらゆる複雑さや例外状況を予測できないからだ。実際に作ってみると「これは考えていなかったな」という部分が必ず出てくる
    • アジャイル は要件が変化する環境で、段階的に正しい方向を見つけていく方法だ
      すでに要件が明確なら、無理に必要ではない
    • このアプローチは結局 Design by Contract 概念の現代的な変形のように思える
      ただし下位チームの代わりに LLM を活用する点が違う
      関連参考資料: Design by Contract (Goodreads), 原文 PDF
  • 「事前学習(pre-training)は人類の集団的な贈り物」という表現には同意しない
    盗まれたものなら贈り物ではない
    LLM が生成したコードでも、私が責任を持って管理するならそれは私のコードだと思う
    問題は、書き手が 責任を回避 するときに起きる

    • 「盗まれた贈り物」という表現には本能的な拒否感があった
    • 知識は盗めるものではない。数学を盗んだとは言わないように、知識の共有 そのものが人類の進歩の本質だと思う
  • Claude Code と Opus 4.5 を使ってみて、私も似た結論に達した
    私はこれを 「禅コーディング(zen coding)」 と呼んでいる。コードベースを禅庭のように扱い、仕様を細かく設計し、1行ずつレビューする
    AI は設計者ではなく 道具 として動くべきだ
    明確な仕様を持つ人は、AIからはるかに高品質なコードを得られる
    Vibe coding は直感的な実験であり、Zen coding は職人の修練だ

  • 「Claude がくれた」といった言い方を聞くと、まだ ドラフト感のあるコード なのだろうという予感がする
    ツールを責めたり謝ったりせず、成果物をもっと良くすればいい

    • 問題は、今や アーキテクチャやコード品質 を気にしなくてもかなり先まで進めてしまう点だ
    • だからこそ期待値をむしろ上げて、自動化で vibe-coded アプリの品質 を引き上げるべきだ
  • 「事前学習は人類の贈り物」という表現には違和感がある
    多くのオープンソース開発者は、自分のコードが LLM の学習に使われることを望んでいなかった
    LLM が生成したコードの中には、私が見た 本やブログのコード をほぼそのまま写したケースもあった
    少なくとも出典を明かすのが道義的だと思う

    • すべての開発は先人の肩の上に立つものだ。完全に独立した創作はない
    • オープンソースライセンスと パブリックドメイン は法的に異なる
      GPL コードで LLM を学習させたなら、その成果物も GPL として公開すべきだという解釈も可能だ
    • 創作者の意思と無関係に作品が使われた例は歴史的にも多い
      たとえば カフカ は自分の原稿を燃やしてほしいと望んだが、今では文学の古典になっている
    • 「クイックソートを実装するとき Hoare にクレジットを与えるのか?」という反論もある
    • 知的財産権 も絶対ではなく、必要なら社会的に 収用(expropriation) されうる
  • 1950〜60年代の「自動プログラミング」は、実際にはコンパイラを意味していた
    1980年代の 4GL はドメイン特化の高水準言語であり、今の LLM は自然言語仕様からドラフトを生成する段階だ
    結局、人間は依然として 反復的な修正と設計変更 を通じて完成度を高めなければならない

  • 今は 職人級の開発者(artisanal coder) の最後の世代を見ているのかもしれない
    Antirez のような職人は、人間の限界を超えた概念を扱い、Redis のようにシンプルで美しいソフトウェア を作り出す
    AI は人間にはできない速度でコードを作るが、それは筆やキャンバスではない
    新しい世代は、まったく異なる形の職人になるだろう
    私も怖いが、この新しい道具を受け入れながら 新しい工芸の時代 を試している

    • チェスも人間がコンピュータに勝てなくなったが、今でも非常に人気がある
    • Antirez は今や AI インフルエンサー に近いが、それでもコーディングは楽しい行為だ
    • LLM がコード作成を助けても、依然として 基礎概念と構造理解 は必須だ
      AIをうまく扱う能力が加わるだけで、既存の知識が不要になるわけではない
  • Antirez の文章で、「vibe codingautomatic programming の違い」を明確に区別していた点が印象的だった
    これは、建築家が手で図面を描いていた時代から BIM, CAD へ移行したのに似た変化だ
    AI時代の開発者はコードを書く量が減るのではなく、価値の焦点が変わった のだ

  • 「vibe coding vs automatic coding」は 二分法ではなくスペクトラム
    1つのプロジェクトの中でも複数段階のアプローチを混ぜられる

    • LLM の出力はユーザーの 技術水準と意図 によって変わるので、成果物は結局ユーザーに帰属する
      重要なのは、道具を 批判的に活用 し、継続的に改善する姿勢だ
    • AI はさまざまな弾き方ができる 楽器 のようなものだ
      これを「spec strumming」と呼ぶ人もいる