人工知能(AI)はコンピュータープログラムのコンテキストを理解し、自らでコードを生成できるのだろうか。その目標に向かう長足の進歩は、開発者らの作業を、そしてローコード/ノーコードによる非開発者らの作業をより生産的にするとともに、手元の作業により集中できるようにしてくれる未来を約束している。
提供:HubSpot
2020年、Intelはマサチューセッツ工科大学(MIT)とジョージア工科大学との共同で、ソフトウェアコードの構造を学習するとともに、よく似た動作をする別のコードとの構文上の違いを分析することで、ソフトウェアの意図を学習する自動化されたエンジンの開発を発表した。IntelのプリンシパルサイエンティストであるJustin Gottschlich氏は、この取り組みの目標が「ソフトウェア生産の民主化にある」と述べた上で、「機械によるプログラミングが完全に実現した暁には、あらゆる人々が自らの意図を表現するだけで、それがコードであるか、自然言語であるか、何か他のものであるかにかかわらず、その人の好む進め方でソフトウェアを生み出せるようになる」と続けた。
OpenAIの自然言語生成モデル「Generative Pre-trained Transformer 3」(GPT-3)もコンピューターコードの自動生成に使用できる。AI関連のウェブサイトであるBecoming Humanの記事でVincent Tabora氏は、開発マネージャーは「GPT-3の機能を搭載したツールを使用してアプリケーションの土台を構築することでプロジェクトの立ち上げ」が可能になると記し、「それを骨格にしてアプリケーションの残り部分を構築できるようになる。マネージャーが要求を入力するだけで、ツールはマネージャーの必要としているものを生成してくれる。これによりプロジェクトはアプリケーションの初期構築のための追加要員を手配しなくても済むようになる。そして骨格が生成された後は、プロジェクトの他の要求を実装するためにより高度なスキルを有した開発者を投入し、アプリケーションを完成させるという手順になる」と続けている。
AIによるコーディングは、新規アプリケーションを構築するための手段だけでなく、アプリケーションやシステムをモダンなプラットフォームにスムーズに移行するための手段ともなり得る。IBMのトーマス・J・ワトソン研究所のIBMフェローであるMaja Vukovic氏は最近のインタビューで、同氏のチームがAIを活用することで、100万行を超えるコードを新規プラットフォームに移行するために格闘していたクライアントを支援したという事例を紹介した。同氏は「そのクライアントのミッションクリティカルなアプリケーションは150万行を超えるまでに肥大化していた」と述べ、「数十年にわたって(コードの)追加や移行、さまざまなシステムとの一体化が図られてきていた。さらに、こういったコードの進化は、複数の開発チームによって推進されており、一部のチームメンバーは別の部署に移動していたり、既に退職している場合すらあった。また、ドキュメントが残されていない場合もあった」と続けた。