ChatGPTのプログラミング実力を試しました

プログラミング学習

最近話題になっているChatGPTをもう試しましたか?

ChatGPTはOpenAIが開発した大規模言語モデルであり、自然言語処理の分野でさまざまなタスクをこなすことができます。たとえば、質問に最善の答えを返してくれます。長い文章を短く要約することができます。多言語に対応しているため、翻訳ももちろんできます。またGoogleが恐れていた情報検索機能も提供しています。小論文や小説などの文章を自然な流れで生成することができます。

ここまでできてしまうのが、本当にすごいですね。もちろん生成した文章の内容はすべてネット上の古い情報に基づいていますので、ネット上に公開されていない会社内部の情報や最新の情報は参考されていません。実際にChatGPTを使って社内に活用する場合、このような課題がまだ残っています。それでも、多くの企業がChatGPTを業務で活用する動きが広がっています。

今回は、ChatGPTの機能の1つ、「プログラミング」の能力を確かめたいと思います。ChatGPTがプログラミングできると聞いた時、恐怖を感じました。ついに、プログラマーの仕事も奪われるようになるかと思いました。ChatGPTの実力を実際に試してみたいので、アカウントを作ってプログラムを書かせました。

今回ChatGPTに作ってもらうプログラムは、私が運営しているプログラミング教室で中級クラスのJavaScriptの課題の1つです。1から10000までの素数を表示してくださいという課題です。実際にChatGPTに指示を出して約1秒でプログラムができました。できたプログラムはこれです。

さらに、プログラムの考え方まで説明してくれました。

ChatGPTの回答は、私が生徒に求めている回答と約9割が同じです。ChatGPTは「その数値の平方根」を使って計算回数を減らす工夫をしましたが、私は実際に生徒に「2からその数値-1までの数で割り算」してもらっています。計算回数が増えていますが、素数という概念に沿った書き方になります。中学生もわかりやすくなります。あとは、console.logで表示するのではなく、document.writeを使って表示してもらっています。

実際にVSCodeにChatGPTのプログラムを貼り付けて、17行修正するだけで、問題なく1から10000までの素数を表示できました。修正後のプログラムはこれです。

わずか1秒でここまできれいにプログラムを書いてくれるのは、確かに驚異です。プログラマーに危機感を感じさせる完成度です。

しかし、他にもいくつか試してもらいましたが、すべてのプログラムがエラーなく実行できるかというとそうでもありません。バグがあったりすることもありました。ChatGPTが生成したプログラムをそのまま使うのは、まだできませんが、ChatGPTが書いてくれたプログラムを、プログラマーが確認し、自分の開発に合うようにアレンジすることができます。いわゆるプログラマーのアシスタントとしてはChatGPTが十分すぎる仕事をしてくれています。プログラマーにとって開発時間の短縮、開発課題の解決手法の検討に、ChatGPTはすごく使いやすいと思います。プログラマーの仕事が奪われることはまだ大丈夫だと思いますが、恐らくこれからChatGPTを活用するプログラマーが増えていくに違いありません。

みなさんも興味があれば、ぜひ一度試してみてください。
https://chat.openai.com/chat