最近は「バイブコーディング(Vibe Coding)」と呼ばれる、AIを活用してソフトウェア開発を行う新しいアプローチが注目を集めています。
そこまでいかなくても、多くの開発者がなんらかの形でAIツールの利用を開始しているなか、ゲーム業界で活躍するエンジニアLuciano Nooijen氏は、自身がAIコードエディタの使用を注意した理由を、ブログ記事「Why I stopped using AI code editors」で詳しく説明しています。
同氏によると、AIを活用したことで作業効率が向上したものの、長期的な使用によって、基本的なプログラミングスキルの感覚「Fingerspitzengefühl」を失う危険性を感じたとのこと。このドイツ語の言葉は、状況判断力や直感的な能力を指しており、ある言語やフレームワーク、コードベースで長く働けば働くほど養われてきた、何が正しいアプローチなのかという「直感」が徐々に失われていったそうです。
直感の発達には上流レベルの作業だけが影響するわけではなく、 ポインターをいつ使うか、アサートとチェックのどちらを使うか、複数の選択肢がある場合に標準ライブラリから何を選ぶか、といった低レベルの細部に大きな要素があるとしています。AIツールがダウンしたとき、あるいは高価になりすぎたとき、バイブコーディングされたコードベースを維持・拡張するスキルをどこから得るのだろうかと、バイブコーディングの謳い文句に疑問を呈しています。
同氏はAIを「補助ツール」として活用することを推奨し、自分のコードエディタに統合せず、手動で必要な時だけ使用する方法を採用します。このようにすることで、重要な知識やスキルを維持しつつ、AIのメリットを享受できるからです。
AIが役立つケースとして、コードの変換や学習目的での利用など具体的な例を挙げていますが、AIが完全にセキュリティを保証することはできず、責任をもってコードを理解し、書く能力が必要だとも警告しています。
AIは便利なツールである一方で、効率を重視するあまり知識を犠牲にする可能性がある点に注意が必要で、同氏はAIの利用を慎重に検討し、自らのスキルを磨き続けることが重要であると強調しています。
この記事に対してRedditでも賛否両方からさまざまなコメントが寄せられています。CopilotやAIツールの効果の限界や、AIツールの使い方のバランスについて、学習や楽しさへの影響など、さまざまな面から議論が行われています。