ここ数年のAIの発展スピードはすさまじく、着いていくことすら大変です。すっかり遅れを取ってしまいました。でもまぁ、ある程度環境が整ってきた段階で始めるのもありだと思います。そんな最近のAIコーディングで感じたことを書いていきます。

ちょっと昔の開発環境

昨年は主にChatGPTを利用しながら、VS Codeでプログラムを作成していました。プログラム全体をAIで作るということはなく、ライブラリを提案してもらったり、文法を教えてもらったり、どちらかというとGoogleの代わりがChatGPTになった感じです。何度でも質問ができ、結論だけでなく詳細な解説までしてくれるので、とても勉強になりました。ChatGPTのおかげでC++が書けるようになったと言っても過言ではありません。ChatGPTはマンツーマンの家庭教師的な存在でした。

現在の開発環境

現在はCursor Proを課金して、CursorでAIコーディングを利用しています。claude-4-sonnetがかなり賢く、コードを書くスピードが何倍にもなりました。AIコーディングには自然言語による指示でコードを生成してくれるエージェントと、自分が次に書くであろうコードを予測して補完してくれるアシスト機能があります。どちらも便利なものですが、自分には「アシスト」の方が合うと感じました。

AIコーディングエージェントは疲れる

最初は神ツールのように思っていました。自然文を指示するだけで勝手にプログラムを作ってくれるんですからね。だんだん自分で書くことが面倒になってきて、試しに全部AIに丸投げしてみました。

そうしてできたのがこのプログラム。OpenAI API互換のLLMが使用できるチャットアプリです。Windows上でGUIで動作するアプリをPythonで作りたかったのですが、私にはその知識がないのでAIに丸投げです。ライブラリの選定もすべてやってもらいました。プログラムの中身は見てもいません。

最初はすげーすげーとAI驚き屋のように驚いてばかりでしたが、開発2日目からはだんだん疲れてきました。自分が明確な指示をしなかったため、AIが勝手にいろんな機能を付けることもしばしば。1回リクエストを送信してからすべてが終わるまで数分かかることもあり、その間は待っているだけです。待っている時間は退屈で仕方ありません。

自分の頭の中ではこうやりたい、ここは直したい、というのがあるのに、すごく手間がかかるなぁと感じるようになりました。自分で書くより遥かに速いのに、変ですね。

今はClaude Codeが話題です。私はまだ手を出していませんが、使ったら考えが変わるような気もしています。もっと簡単に動かせるようになったらやろう。

AIコーディングアシストは楽しい

コーディングアシスト機能を使うと、自分がこの後書きそうなプログラムを予想して、先回りして書いてくれる機能です。たとえば、

byte buff[32];
for 

とここまで書くと

byte buff[32];
for (int i=0; i<32; i++) {
  buff[i] = xxx;

のように予想して提案してくれるわけです。もちろん外れることもありますが、そんなときはTABキーを押さずにそのまま自分で途中まで書いていくと、「おっと、君はこれがやりたかったんだね」とばかりに的確な提案をしてきます。コメントを書けばもっと的確になります。アシスト95%、エージェント5%で作ったのがこちらのプログラムです。

サクサクとプログラムが書ける!たのしー!
「次はここで判定いれて、[TAB]、エラーチェック入れて、[TAB]、やっぱここはこうして、こう[TAB]、よし!」

次から次へとやりたいことが実現できて楽しく感じます。めんどくさい部分はアシスト機能が補完してくれるので、次にやりたいと思うことにすぐに進める。今までだと自分のコーディングの遅さが足を引っ張っていたのですが、アシスト機能のおかげで止まらずに走り続けられます。

思考することがゲームなんだ

AIコーディングエージェントを使った方が早く楽に開発できるのに、なぜアシスト機能を使った方が楽しいのか? それは常に自分の頭で考えながらら作っている達成感があるからだと思います。この感覚とよく似てるのが、ゲームをしているときです。

私はSatisfactoryTimberbornのようなシミュレーションゲームが好きで、次はこうしよう、そのためにはこれをこうしないと、といういくつもの目標があって、それを達成していくときがとても楽しいです。もっと言えば、計画を立てている時が最高に楽しいです。

AIは便利ですが、楽しい部分もAIに持ってかれてしまうと、人間はただ待っているだけの存在になってしまいます。結果が欲しいのか、過程を楽しみたいのか、目的や好みで使い分けていきたいと思います。

LINEで送る
Pocket