最近巷ではChatGPTが話題になっていますね。
どれだけすごいの?と気になったので試しにプログラムのリファクタリングをお願いしてみました!
最初に感想を述べてしまうと、もはや中にベテランエンジニアが入ってるんじゃね!?と思うほどレベルが高く良くできていると感じました。
※ 記事中は英語での会話になっていますが日本語でも可能でした
ChatGPTとの会話
とりあえず最初のやり取りはこんな感じでリファクタリングをお願いしてみました。
自分のシンプルなメッセージに対してすごい熱量で前向きに返信してくれます。この時点ですでに感動。そのまま翻訳を適用すると以下の日本語になります。
ソース コードのリファクタリングをお手伝いできれば幸いです。コードの機能と、具体的にどのような変更を加えたいかについて、さらに詳しい情報を提供していただけますか?また、ソース コードまたはそのリンクを提供してください。確認できるようになります。
快く受け入れてくれたので早速リファクタリングしてほしいソースコードを貼り付けて送ってみます。
上記のソースコードは、過去に以下の記事で紹介したeachよりもmapを使う方が適切なパターンです。さて、ChatGPTの実力やいかに・・・
その後返ってきたメッセージがこちら
おおおお!最初は送ったソースコードの処理の流れを説明してくれていますね
そしてmapを使う方が良いよと教えてくれて期待通りeachをmapに変更したソースコードを送ってくれました!しかも2パターン!
(2023/1/21追記:実際には後者のパターンは文法エラーになります。提案されたコードが正しく動作する保証はないのでご注意ください)
この時点で感動して鼻血出そう。すごいぞChatGPT!
早速続いてのお題を与えてみます。
次はifをネストしたプログラムを送ってみました。
そして返ってきた返答がこちら。
先ほどと同様にプログラムの解説とリファクタリング後のソースコードが返ってきました。
期待通りぼっち演算子(&.)を使った書き方に直してくれています!
しかもプログラミング言語がrubyだと教えていないのに勝手に判断してくれたようです。すごすぎる。
最後に人間にとっては理解が難しいような条件式を試してみます。
こちらも例の如く解説とリファクタ後のコードを返してくれます。
一つ目は期待通りド・モルガンの法則を使ってリファクタリングしてくれました!
しかし、二つ目はどうやら元のプログラムとは結果が変わってしまいます。
どうやらChatGPTも完璧というわけではなさそうです。
最後にお礼を述べて去ることにします。
私の一言だけのそっけないメッセージに対しても温かい返事をくれました。
ホスピタリティが高くて涙が出そうです。
おわりに
AIのレベル感がどんなものか興味本位での試みでしたが、どのお題に対しても私の想像を超えるレベルの高い回答が返ってきたので正直度肝を抜かれました。
返答のホスピタリティも非常に高く「AI = 冷たい」という私の勝手なイメージも覆されました。
果たしてChatGPTはエンジニアの存在を脅かす存在なのか?はたまたエンジニアと並走できる強力なパートナーなのか?
いずれにせよ私たちのプログラミングのやり方を大きく変えるゲームチェンジャーになり得る存在だと感じました👏
追記
勝手に英語でないと使用できないと思っていましたが日本語でも大丈夫でした。