コーディングエージェントというパラダイムシフト
Claude Code が爆誕してから1年以上経った。
その誕生により、明らかにプログラミングという作業の方法は激変した。
自分は、GPT 3.5 Turbo が出たころに、本格的にプログラミングをはじめた。
それ以前に少し入門したときは挫折した。
だからAIのおかげで今があるし、ほとんどずっと、AIを使って開発してきた。
それでも、コーディングエージェントによるパラダイムシフトはとても大きいものだったと感じている。
なぜ、コーディングエージェントを使わない選択をしてみたのか
最近は逆に、コーディングエージェントを使わずに実装をすることがままある。
きっかけはとても受動的なことだった。
新卒として入った会社の技術研修。この期間は、コーディングエージェントを使わないことが推奨された。
推奨されたから、そうした。それだけだ。
きっかけは受動的だった。でも、続けた理由は違った。
懐かしい感覚
研修では、これまで触ったことのなかった、Ruby、Ruby on Rails を学んだ。
これまではDartとかTypeScriptとかを書いていた。
あまり触れたことのない動的型付け言語。
コーディングエージェントがあれば秒殺できるような基礎的な課題。
だけど、頼らず入力していく。
そのうちに、自分で色々なメソッドを組み合わせながらコードを書くことに懐かしい感覚を覚えた。
自分がプログラミングを始めたとき、そして挫折したとき。何となく分かるような気になってた時期。
そういえば、AIに聞いたり、記事を読んだり、ドキュメントを参考にしたり。こういう作業を確かにしていた。
よく考えると、1年とちょっと前までそれが当たり前だったのだ。それにしても妙に遠い、ノスタルジックな感覚のように思えた。
自分でコードを書くことはもどかしい。でも、楽しい。
もどかしさを感じる。
もし、コーディングエージェントを使えば、すぐにある程度の正解が出る。それをチェックする。
「そういうことね」と納得したり、おかしそうなところを質問する。たまに修正させる。
数ラリーで課題が終わるだろう。自明だ。
でも、楽しかった。
ああでもない、こうでもないと試行錯誤する。
「こういうメソッドあったら便利なのにな」と調べる。なかった。すこし苛つく。
じゃあどうする?類似の事例を調べてみる。他の実装方法を検討する。
なんだかんだやって、上手く行った。カタルシス。
すぐにアウトプットが出る便利さは、素晴らしい。そして、すぐに求めていたものが出てくるのはそれはそれで嬉しい。
だけど、自分で、試行錯誤するその過程を経て結果が得られる。そこに宿る楽しさも、確実にある。
そういえば、それが楽しくて続けてたんじゃなかったっけ......?
AI を使わず書く意義はあるのか
エンジニアにとって、プログラミングは仕事だ。
最小のリソースで最大のアウトカムを出力することが求められる。
仕事としてコードを書くときに、生産性から逃れることはできない。
つまり活用できる環境なのであれば、最大限にコーディングエージェントを活用することは必須だと考えている。
ただ、僕にとって、プログラミングは趣味でもある。
タイパが悪くても良い。だれに求められているわけでもない。
自分の勉強とか、日曜大工的な個人開発は、生産性からの逃避行を許す。
近頃、休日の開発にはあえてAIを使わないことも多い。だれも文句を言う筋合いはない。
おわりに
コーディングエージェントは確かに多くのものを与えた。
ただ、失われたものもきっとある。
例えば、自分にとっては試行錯誤のカタルシス。
もし、それが自分の好きなものだったらノスタルジーに浸りながら回帰するのも悪くない。
AIを絶対に使うな、自力が付かないぞ、みたいな話には賛同しない。
全てを自分で書くことが素晴らしい、と礼賛もしたくない。
完全にAI禁止に回帰するわけにもいかない。仕事では生産性が要る。
だけど、「生産的で進歩的な完全バイブコーディング」と「非効率的で保守的な手コーディング」の間で。
趣味としてプログラミングを続けるなら、自分にとって心地よい距離感を探すことも大事なのだと思う。
好きであり続けるために。
この文章は私の手で書いた上でAIによるレビューを介しています。