AIコーディングの時代
最初にAIを使ったコーディングを始めたのは2023年の3月だったので、約2年程バイブコーディングの経験を積んできました。
僕は特定の問題に対して決められた期限で解決する「プロダクト」を用意しなければならない立場なので、コードを書く技術を高めるよりもとにかく実装を進めなくてはなりません。
その為AIはコーディング期間の短縮に非常に役立ってくれました。
本格的に仕事で使うようなコードを書き始めたのは2022年の4月からなので、半分以上の期間をAIコーディングしています。
GitHubのアカウントを取得して複数人でのコーディングをスタートしたのも2年前。
そこから大小30件ほどのプロジェクトを立ち上げましたが、全てのコードでAIを利用しています。
GitHub Copilotの衝撃
2年前はChatGptにコードをコピペしたりして、ブラウザとエディタの往復で実装を進めていましたが、GitHub CopilotやCursor等、エディター自身にAIが付属するようになりました。
GitHub Copilotを使い始めてから半年ほど経過しましたが、Visual Studioを使ったプロジェクトではそれなりに役立ってくれました。
ブラウザとエディタの往復は時間を使うので、手間だったのですが、エディタだけで完結するのは可処分時間が増えていい感じです。
精度はChatGptよりも劣るのですが、繰り返しのコーディングやコメントの生成等、書き初めのきっかけを補完してくれるのに非常に有用です。
コーディングにおいては、やりたいロジックを思いついてから実装に落とし込むまでの時間が長くなりがちですが(文法を調べたりライブラリの使い方を調べたり)、そこをAIが補完してくれます。
たとえやりたいロジックが完璧にできなかったとしても、最初の動き出しが一瞬で生成されることで、そこからまたプロンプトを書くか、自分で直すかという次のアクションにすぐにつながるんですよね。必然的にプロダクトの完成スピードが速くなります。
Cursor
Javascript等、これまでVS Codeを使っていたプロダクトではCursorを使うようにしています。
ネット上ではCursorのこだわり構成等散見されますが、そういう環境を構築するよりも先に期限の迫ったプロダクトが多く、Cursorに色んな設定する暇もなく、かなりいい加減に使っていますが滅茶苦茶素晴らしいです。
Visual Studioを使うプロジェクトの2割~5割増しのスピード感で実装が進むイメージです。
特にチェックポイントに戻る機能が素晴らしい。
(一瞬使えなくなるバージョンもありましたが、すぐに復刻されていましたね。)
AIが生成したコードの方向性が大幅に違う場合等、以前の状態に一瞬で戻しつつ、すぐにプロンプトを書き直せるので、非常に有用です。
Cursorを使ったプロジェクトの場合は仕様を満たしているかどうかをチェックしているだけの時間が多く、後から手動でリファクタリングしている場合が殆どです。
プロダクトの学習曲線
AIコーディングにおける問題の一つに、人間の技量が向上しなくなる問題があります。
コードを使ったプロダクトを作る場合、プログラム言語やフレームワーク、ライブラリ、クラウド技術といった様々な要素を学習する必要があり、そこを大幅にAIが補完する為に人間の学習レベルが落ちるというのは実感として確かにあります。
しかしこれをプロダクト全体の学習レベルとして考えてみたときには、AIの能力が物足りなくなる場合が殆どです。
プロダクトにとってはコードを使って何を成すかが重要なので、特に大規模なプロジェクトになると、プロジェクトの仕様がAIの許容量をオーバーしてくるタイミングがあり、そこからは人間が補完するしかなくなります。
開発当初はAIがカバーしてくれていますが、仕様とツールの理解が深まるにつれて、最終的には人間の方が優れた結果を残すようになり、プロジェクトの後半では殆どプロンプトを書かなくなります。
学習リソースのハイブリット化
良くも悪くもAIの精度には限界値があるイメージです。しかし人間の学習量に限界はないです。
プロダクト開発初期のスピードアップと人間の理解補助をAIに補完してもらえるおかげで、全体の開発効率が高まっているイメージは、さながらハイブリット自動車のようですね。
よくある理想としては、ツールへの理解を先に、AIは補助と考えるようですが、プロダクト全体の学習効率=開発スピードが落ちているだけだと思うんですよね。
プロダクトがあんまり恩恵を受けられていないというか。
直観の話なので、実際には違うのかもしれませんが、AI Nativeにとっては前時代の話はよく分からないです。