CodexのようなAIプログラミング・アシスタントの出現により、多くの開発者が「私たちは取って代わられるのだろうか」と考えている。正直なところ、コードを日常的に扱う者として、私は興奮すると同時に少し不安でもある。これらのツールは、私たちが反復労働の多くを節約するのを本当に助けることができることに興奮している。現在の観点からすると、AIは「代替」というよりも「スーパーアシスタント」のようなものだ。明確な反復作業を処理することはできるが、創造的思考やシステム・アーキテクチャの設計が必要な作業に関しては、依然として人間に頼らざるを得ない。しかし、クリエイティブな思考やシステム・アーキテクチャを必要とする作業に関しては、やはり人間の開発者次第だ。
AIプログラミング・アシスタントの強みと限界
Codexの最も素晴らしい点は、特定のコーディング作業を処理する能力だ。バグの修正、ユニットテストの記述、コードのリファクタリングといったタスクは、AIが本当に速く、うまくこなしてくれる。古いPythonモジュールのリファクタリングをお願いしてみたが、完璧にこなしてくれただけでなく、途中でdocstringや型アノテーションも追加してくれた。しかし、ビジネスロジックを理解し、アーキテクチャーのトレードオフを計量することになると、AIはそのタスクに対応できない。先週、私はAIにマイクロサービス・アーキテクチャの設計を依頼したが、その結果得られたソリューションは、技術的には実現可能であったものの、我々のチームの実際のO&M能力を考慮していなかった。
もうひとつの興味深い現象は、AIが生成したコードは正しいが、しばしば「人間的な」配慮に欠けるということだ。例えば、人間の開発者がするような要所要所での説明コメントの追加や、チームのコーディングスタイルへの適応は行われない。これはグーグルの研究を思い出させる。AIが支援した開発者は合格率の高いコードを提出したが、その後のメンテナンスコストは15%増加した。
開発者の役割の進化
AIは開発者に取って代わるどころか、開発者の仕事を再定義しつつある。現在、優秀なエンジニアはコードを書けるだけでなく、AIツールの効果的な使い方も知っていなければならない。かつてIDEの登場によってプログラマーがいなくなったわけではないように、AIアシスタントはむしろ、機械的な労働から私たちを解放し、システム設計やパフォーマンスの最適化、創造的な問題解決など、より価値のある仕事に集中できるようにしてくれるのだ。
知り合いのシニア・アーキテクトは、今は具体的なコードを書く時間を減らし、むしろシステム設計について考える時間を増やしていると言っていた。結局のところ、ソフトウェア開発で最も価値があるのは、キーボードを打つスピードではなく、問題解決のアイデアや技術的決断の質なのだ。
将来のコラボレーション・モデル
最も可能性の高い方向性は「人間と機械のコラボレーション」モデルで、明確で反復的な作業はAIが行い、人間は創造性と判断力を必要とする作業に集中する。自律走行に5つのレベルがあるように、プログラミング作業にも同じような分担があるかもしれない。L1はすべてAIが行うが、L5は人間が主導しなければならない。興味深いことに、GitHub Copilotの統計によると、AIの提案を受け入れる開発者の割合は、単純作業では40%と高いが、複雑なアルゴリズムの実装では5%以下に急落している。
結局のところ、AIプログラミング・アシスタントは開発者にとって「スーパーインターン」のようなものだ。明確な指示を素早く実行することはできるが、戦略的思考や創造的な作業は依然として人間に依存している。OpenAIのCEOであるサム・アルトマンは、「AIが開発者に取って代わることはないが、AIを使える開発者がそうでない開発者に取って代わるだろう」と述べている。少し回りくどい言い方だが、未来を指し示している。
评论列表 (0条):
加载更多评论 読み込み中...