趣味で身の回りの不便を便利にするレベルのAI活用ではコードが動くか動かないか?だけでいいのであるが、少し難しくなってくると動かないものも出てくる。

とある準公的なAPIを取得するだけなのだがPythonでは取れるのに、PowerShellでは取れない。動くコードを全部貼って、PowerShellで取れるよう指示しても全く駄目である。エラーのループを続けるので、"あなた意外に駄目ですね"と思わず意地悪な暴言をプロンプトに入力してしまった。

LLMは統計的確率に依存しているため、処理できるデータが多いほど、より優れたものになる一方、分母の小さいデータではうまくいかない(IEEEの「Top Programming Languages 2025」記事)ようなので、おそらくあまりそのようなデータが多くなく、こちらの知識が足りないので的確な指示が出せていないのであろう。"AIコーディングの罠"である。

AIを活用したマーケティングコンテンツのパーソナライズ支援を行う英Datasineの共同創業者でソフトウェアエンジニアのChris Loy氏は、自身のブログ「The AI coding trap(AIコーディングの罠)」のなかでAIは驚くほど速くコードを書けるが、文脈や設計を理解せずに生成するため、人間の開発者が後からそのコードを理解・修正する負担が増えることを指摘し、複雑なソフトウェア開発では10%程度の向上にとどまることが多いと述べる。

(優秀な)人間のプログラマーは、コードを入力する時間よりも長い時間じっと画面を見つめていることが多いが、対照的にAI駆動型コーディングでは、まずコードを書き後で質問するがここには大きな違いがある。

Chris Loy氏は、チームでの開発になぞらえて、AI駆動型コーディングをコード生成の速い非常に優秀な若手エンジニアとして扱うこと(AIでは対応できない複雑さの壁がある)、実際でのチーム開発のように仕様、ドキュメント、モジュラー設計、テスト駆動開発、監視やログ分析など実践的な役割を定めて各所にAIを活用することを提案している。

じっと画面を見つめている人間のプログラマーは必ずしもサボっているわけではないのである。AIコードを活用する側の知識量や経験も向上させなければ、思うような動作はAIといえども簡単にはいかない。