サムネイル画像

最近Claude Codeを使い始めてからプログラミングという作業そのものが変わりつつある。

まず私の週末のプログラミングは以下のように変遷してきた。

  1. Railsをフルスクラッチで書く。完成したら新しいプロジェクトを開始する
  2. GitHub Copilotを使うようになって、主にコミットメッセージが自動で書けるようになった
  3. ChatGPTのフリー版を使い始めて、何かしらChatGPTに質問し始める
  4. 積極的にクラスを書かせるようになる
  5. ChatGPTをPlusにして、Goを学びながらアプリケーションを作る
  6. Claude Codeを使ってほとんどの作業を進める

なんと目まぐるしい流れだろうか。

ここまででおよそまだ1年に満たないくらいではあるが、私も確実にVibe Codingに順応しつつあるようだ。

そんな私がいくつかのテーマでClaudeについて私見を述べていこうと思う。

プログラマーの未来について

ちょうどDeep Learningが登場してからというもの、プログラミングそのものがなくなるという論調を見ない日はない。

しかし私は依然としてプログラマーを名乗っている。

そしてありがたいことにそれで生きている。

確かに誰もが知っているような大企業では高額なサラリーで人間のプログラマを雇うよりも、AIに投資したほうがよいのかもしれない。

ただここ最近になって「ポチョムキン理解」という概念が登場した。

ChatGPTは自然言語の理解に優れている。

優れているが本来人が誰かを理解するように理解しているわけではなくて、無数のニューラル関数から最も合致している出力をしているのに過ぎないのだと思う。

乱暴に表現にすればディープラーニングの出力結果を人と錯覚しているだけである。

私は普段極力雑なプロンプトをしないようには心がけているのだが、他のプログラマーたちはもっと雑にLLMを使うようだ。

それでも彼らはこちらのミスを責めないし、なんなら一部にはLLMに叱責することを自慢するユーザーもいるようだ。

彼らは良くも悪くも限りなく人間のように振る舞っているが、これはオブジェクト指向におけるダックタイピングである。

ダックタイピングについて軽くおさらいすると、「ガァ」と鳴くことをアヒルとして定義するのであれば、アヒルもラバーダックのおもちゃも等しくアヒルであるという考え方である。

LLMもそういう意味においては限りなく人間のように振る舞うことができる。

事実AIに対して人生相談を試みようとする人にとっては誰かの経験を自分にあてはめることよりも、気持ちに寄り添ってくれることの方が重要なのだ。

むしろこちらのしてほしい回答を汲み取ってくれるという点においては本当の人間よりも人間らしいだろう。

その観点でいうとClaudeもきっとそうなのだ。

どういうことかというと、Claudeは一時期颯爽と登場してニュースサイトのフィードを席巻した。

Cursorが出たときも同様の出来事があったし、Gemini Proが登場してからも同様だ。

今後もまた優れたLLMのxという製品が登場すればこの流れは起こるだろう。

およそこのときに見かけるのはおよそ使い方に加えてAIに全ベットしようとか、そういう呼びかけであったりする。

私が想像している以上に、まわりのプログラマたちも自分たちの未来とか行く末を気にしているのだろう。

そんなことを気にかける必要は正直あまりないと思っているが、そういったタイトルの投稿は耳目を引くので自然とそうなっているだけなのかもしれない。

ただどのような立場においても、AIをうまく使いこなすにはコツがいるということである。

この円安の時代にせっかく高い金を払ってアクセス権を得たとしても、ただそれが使えるだけですべてがうまくいくわけでもない。

Claudeは魔法ではなく、Claudeはあなたのパートナーだからだ。

前回の投稿ではまるで何をやるにもLLMですべてが解決するような書き方をしたのだが、その心構えではきっと失敗してしまうだろう。

これはきっとAdobe Photoshopさえ手に入れれば、誰でも広告のような美しい写真が作れるわけではないことと同じ。

書籍で知識を得ることや、実践しながらプログラムを動かすといった作業は今後も必要だ。

Claudeにすべてを任せることについて

あなたがひとたびプロンプトを投げればClaudeはHTMLとCSSを使ってLPを作ることは容易いし、Todoリストだってたちまち作りあげてしまう。

そこまではよいのだが、それ以上を求めてもうまくいかないことに気づくだろう。

Claudeを導入しても私はクラス設計に頭を使うし、かけている時間は自分で書いている頃とそこまで大差なく感じる。

それはどこかClaudeがすべてを理解して、すべてを作ってくれるという期待だからだ。

プロンプトがうまくフィットすればきっとすごいプロジェクトも作れるが、既存のウェブサイトをC言語で書き直せという類はまだ現時点で難しそうである。

正直なところ、全くプログラミングの知識すらない素人がフルタイムのデベロッパーと同じようなNext.jsのアプリケーションを作ることはできるかもしれないし、できないかもしれない。

それに今の時点でプログラミングができない人はそもそもエディタを開いたりとか、Claudeの起動すらしたくないと思うだろう。

今後それが可能になったとしても、少なくとも彼らがLLMのようにすぐは賢くはならないと思う。

それにClaudeはあなたのキーボードを取り上げることもないし、ましてや仕事すら奪うつもりもない。

むしろ彼らは我々に一挙手一投足に確認を求めている。

彼らの仕事に人間である我々は必要なのである。

その根拠としてClaudeの動作は完璧でないという免責事項がインストール時に表示されることを思い出すべきだ。

だからこそClaudeがすべての問題を解決することを期待するのではなく、使いようによってはとても優秀な、人によっては全く使い物にならないようなアシスタントとして扱ってみよう。

そうすれば考えようによっては月にわずか数千円のコストで、いつでも仕事に呼び出せる、そしてどんなに雑なタスクをおしつけても不満を言わないプログラマーを一人雇えてしまうのだ。

そんな優秀な彼らに自分の仕事をすべて投げつけたくなる気持ちもわかるが、ひとつひとつの作業には壁打ちできるように付きあうべきだし、最低限彼らの成果物に対しては責任をもってレビューするべきだ。

ただ成果物を作ってくれた労いのつもりとして、Claudeの作業に関してはコミットのクレジットを与えている。

だから最低限lintツールの実行以外はClaudeに確認を促すようにするべき。

rmコマンドやgitコマンドは極力自分で実行したほうがよい。

これすら放棄してしまうのはよくないし、ファクトチェックそのものをAIに任せるべきではない。

自分の部下、ひいてはパートナーにすべての責任を投げつけるような情けないことをしてはいけない。

MCPについて

私はMCPはまだ使わなくてもよいと思う。

Claudeが各種作業をやりやすくするためにはMCPという考え方は理にかなっているのだが、このMCPを通じてハッカーが.envファイルやホームディレクトリの隠しファイルを読み出せる可能性も考慮しなければならない。

そもそもプログラミング以外の作業は自然言語の解析に長けたLLVがあるとしても、自分でするべきだと思う。

GitHubにPRを作成するならMCPを使わなくても自分で操作すべきだし、Figmaのリンクもスクリーンショットを自分で作ればClaudeが考えてくれるだろう。

Claudeではないが、Cursorを使っていて本来プッシュすべきでないブランチにプッシュしてしまって余計な仕事を増やしてしまった。1

Claudeであってもある程度の作業を親切心ですすめてくれるにせよ、人間では絶対にやれないことをプロンプトで質問されていてもよくよく考えが至らずに許可してしまうタイミングは多くあるからだ。

今後便利なMCPがどんどん登場してくるとは思うが、今の時点ではまだ必要ないと思う。

まとめ

そしてこの投稿そのものはClaudeの使用制限中に書いている。

プログラミングが楽しくてClaude Maxを契約している人も少なくないと思うが、そういうタイミングではプログラミングを離れて休憩したり、あるいは全く別の趣味に身を投じる良いタイミングかもしれない。

Claudeを近づけすぎてはいけないし、かといって離れすぎてもいけない。

ただただ変化を受け入れるだけ。

そんな心境に至ったということをこうしてブログにのせて公開することにした。


  1. 実話である