AIとプログラミング
おひさしぶりです。イノベーション開発部の野村です。
ここ数年AIを使ったサービスが多く提供されています。私も開発をしておりますのでニュースなどでAIの文字があれば目を通すようにしていますが、最近「GitHub Copilot」が一般提供されたという見逃せないニュースがありました。
GitHub Copilot(ギットハブ コパイロット)は、GitHub社が提供する「AIとペアプログラミング」が行えるサービスです。ペアプログラミングとは「ドライバー」と「ナビゲーター」の二人で一緒に作っていく開発手法で、ナビゲーター役がどのようなコードにすべきかを指示して、ドライバー役がコードを記述することで一つのプログラムを作成していきます。二人で検討しながらプログラミングを進める形になりますので、作業ミスを軽減でき、質の高いコードができるといわれています。
GitHub Copilotではドライバー役をAIが担当し、ナビゲーター役のプログラマーが考えた処理の概要をコメントや関数の型(関数名や引数、戻り値など)として記述すると、プログラム(コード)をAIが提案してくれるというすごく便利なサービスです。AIが学習する際に利用しているコードはGitHubで公開されている世界中の人が書いた何十億行のコードらしく、かなり精度の高い提案をしてくれるそうです。
私も実際に試したところ、想像していた以上にすばらしいものでした。例えば、「フォルダをダイアログで選択」とコメントを書くと、動作するコードを提案してくれました。
今回例に挙げたものは簡単な処理ですので上手くいきましたが、色々と実験してみると上手く提案してくれないことも多く、提案された場合でも例外処理(※1)がないなど、そのまま利用できるコードになることは少ないようです。ただしAIが予めコードを提示してくれますので、上手くはまれば大幅に開発効率を上げることが期待できると思います。
これから更にAIが学習を進めていくと提案の精度も上がってくると思いますので、プログラマーは処理を考えるだけで良くなるすごい時代が来るかもしれません。
※1 プログラムが通常の処理では想定していない事態や事象を「例外」と呼び、例外が生じた時の対応を記述したコードを例外処理という。例えば数字を入れるべき所に文字を入れると「数字を入力してください」というメッセージを表示して入力をやり直させる、など。