emahiro/b.log

日々の勉強の記録とか育児の記録とか。

Claude Code でもの作りが"本当に"変わるかもと思った

Cluade Code を体感して、"驚いてしまった" ことは前回のエントリに書いたのですが、このツールを触ってみたことでもの作り、特にソフトウェア開発における不可逆な変化を感じたので雑文として書き残しておきます。

ema-hiro.hatenablog.com

なお、明日には全く違うことを言ってる可能性もあります。

自分が Claude Code (後発の Gemini CLI 含む)が良かったのは CLI ツールだからなのですが、CLI ツールだと何故いいのか?というと動作環境を問わず、ターミナル上で動くことにほかならないと思います。

※ ちなみに自分は Claude Code が先駆けかと思っていたのですが、大手だと ChatGPT の Codex CLIAmazon Q に CLI ツールがあった んですね。

Cursor や GitHub Copilot を始めとした AI Agent は結局その Editor の UI を介してしか触れることができませんが、CLI ツールであればツールを問いません。Vim 使いにも emacs 使いにもその他の Editor 使いにも等しく LLM のインターフェースが提供されます。まずこの時点でツールとして有用だなと思いました。この時点でシンプルに体験が良いです。なぜなら上記のような Editor 同梱型の Coding Agent を利用しても、結局実行時にターミナルにコピペしたり結果をまた別のコマンドに渡したりといったひと手間が必要で、チャットUIだけではスムーズに行きませんでした。

Claude Code の体験の良さ、スッと自分の開発シーケンスに入ってくるこの感覚をいまいちうまく言語化できないんだけど、もともと Github Copilot にしろ Cursor にしろ、チャットUIでプロンプトのやり取りをするというあのフォーマットは過渡期の産物でもっと開発体験に直接作用するゲームチェンジャーが出てくるかもなと直感的に思ってたから、自然と受容できてる、というのはありそうな気がしている。

emahiro (@emahiro.bsky.social) 2025-06-19T11:51:57.228Z
bsky.app

CLI ツールであればパイプで繋いで入出力を繋いで様々なワークフローをワンライナーで構築できます。

ここで思い出したのは UNIX哲学 です。

特にここの3つが今回の CLI ツールとはマッチすると感じます。

  • ソフトウェアを梃子(てこ)として活用せよ (Use software leverage to your advantage.)
  • 梃子と移植性を高めるためにシェルスクリプトを使え (Use shell scripts to increase leverage and portability.)
  • 凝ったユーザーインターフェースは避けよ (Avoid captive user interfaces.)

CLI で提供されてるので既存のワークフローへの移植が用意で、かつそこで LLM の恩恵を受けることができるのでレバレッジが効きます。
これを最初から考えていたわけではないですが、触ってみて UNIX 哲学に則って作られたツールだなと感じ、だからこそ前述の通り、特に違和感なくスッと自分の開発体験に入ってきたんだと思います。

ここまでは CLI ツールの良さの話であり、本題のもの作りははどう変わるか?というところについては現時点での考えは以下です。

  • 人間がコードを書いてプロダクトを作ってた時代は "本当に" 終わる。
  • 機械にコードを書かせるためのドキュメントを用意することが大事。

「人間がコードを書いてプロダクトを作ってた時代は "本当に" 終わる *1」という点についてですが、今までもこれは言われていて自分も人間がコードを書く未来というのはもう無くなることが約束されているんだろうな?と思ってはいたのですが、実業務の中でそう入っても Cursor にしろ Copilot にしろ、これらが全て自分たちのワークフローを置き換えるのか?という点についてはまだ先が長そうだ、と直感的に考えていました。というのも、これは Editor 同梱という点が自分の中ではネックで、個人 PC で Editor を開いてそこでプロンプトをやり取りして成果物をレビューして、みたいな状態は目指すべき未来ではないと考えていたからです。

CLI ツールはこれを完全に覆して、ターミナル上で動作する以上別に場所を問わずに開発が続けられます。また前述の通り作業の成果についてはパイプで繋いで、別のプロセスに入出力を渡すことでインターフェースの制約すら存在しなくなります(もともと CLI ツールというのはそういうものですが)

これはもの作りのプロセス根本を変えると思っていて、「動作環境を問わない隔離された箱の中の自律的なプロセス」が動き続けることは、Editor がないと走れない今までの Coding Agent とは一線を画します。
Agent 前提のもの作りにおいて、もう人間が何かを操作する(プロンプトを考えたりする)ことすらなくなります。Agent が出た頃に言われていた「何を作るのか?を定義し、その定義を食わせ、出力をチェックする」という時代が本当に来ます。少なくとももう2,3 年のうちに一般的なソフトウェア開発の世界ではこの作り方が一般的になるでしょうし、この時代において大事なのは Agent の動く指針となる「何を作るのか?どう作るのか?が書かれたドキュメント」になります。Agent が走る道路を作るのが人間の仕事になるのではないかと思います。

体感するまでは、まだ先だろうと思っていた未来がすぐ手の届くところに来たというこの感覚、正直めちゃくちゃワクワクしました。
真面目に GitHub Copilot が登場したときや、初めて Google AppEngine に触れたときに高揚感に近いものを感じます。*2

自分がソフトウェア開発を生業にする中で、ここをこうしたら良くなるのにな〜と思っていたことがほぼ全て AI でやっていけそうだ、という直感があり、これを考えるのが楽しみで仕方ありません。

まだまだツール自体は進化すると思いますが、少なくとも1つのあり得る未来として CLI ツールが出てきてくれたことは本当に良かったと思います。
あと Claude Code の場合 Sonnet, Opus に最適化されているので、使い心地も群を抜いてよいです。Gemini CLIOSS として開発されていますが、OSS にせずに Gemini に最適化したチューニングとかしてくれると Claude Code と並んで良いツールになるんじゃないかなと思います。

思ったことをまとめただけなので本当に脈絡のない駄文になってしまいました。

繰り返しですが今考えていることというだけで明日には手のひら返ししてる可能性もあるのであしからずmm

おしまい

*1:もちろん LLM が入れない世界に置いてはまだまだ人間がコードを書く領域として残り続けると思いますが、それはごく一部の領域に限られ、大体のソフトウェア開発の領域においては人間がコードを書くことはなくなるんじゃないか?と思います。

*2:この2つは自分のエンジニアキャリアの中でも大きな転換点でした。