「ChatGPT」がコードを記述できることは、この数カ月の間に誰もが知るところとなった。筆者が「PHP」と「WordPress」で何度も実施したテストから、ChatGPTのコーディング機能の長所と短所の両方が明らかになっている。
しかし、ChatGPTのコーディングの知識はどれほどのものなのだろうか。本記事では、古典的なプログラミングの課題である「Hello, world」を、O'Reilly Mediaの2023年の人気ランキングでトップ12に入った言語に与える。
「Hello, world」のコードは1行で終わることが多いため、少しひねりを加えてみた。「Hello, world」を10回表示させ、カウンターの値を毎回1つずつ上昇させる。また、時刻を確認して、各シーケンスの始まりを「Good morning」「Good afternoon」または「Good evening」にするよう求めた。
これなら、プログラムの流れやいくつかの組み込み関数も分かるし、コードの長さを抑えて、本記事に12枚のスクリーンショットを収められるはずだ。
以下のプロンプトを入力した。
オレゴン州の現在時刻に応じて、「Good morning」「Good afternoon」または「Good evening」を出力した後、ループインデックス(1から始まる)、スペース、「Hello, world!」という言葉を含む10行を出力するプログラムを(言語の名前)で書いてほしい。
また、各プログラミング言語の主な用途も説明するようにChatGPTに伝えた。このクエリに使用したのは以下のプロンプトだ。
「Java」「Python」「Rust」「Go」「C++」「JavaScript」「C#」「C」「TypeScript」「R」「Kotlin」「Scala」の各言語について、主な用途と差別化要素を1文で説明してほしい。
では、各言語での出力を見ていこう。
Java
ChatGPTはJavaを次のように説明した。「主にデスクトップ、ウェブ、モバイルアプリケーションの構築に使用される汎用言語で、『一度書けば、どこでも動く』」という理念で知られる」
Javaは元々、Sun Microsystemsによって開発されたが、OracleがSunを買収したとき、Javaも買収した。Javaの仕様は公開されているが、同言語はOracleが所有している。これが長年にわたり、複数の大規模な法廷闘争の火種となってきた。
ChatGPTは下図のコードを出力した。
提供:Screenshot by David Gewirtz/ZDNET
Python
ChatGPTはPythonを次のように説明した。「データ分析、人工知能、ウェブ開発、自動化に使用される汎用言語であり、読みやすさと使いやすさで知られる」
筆者からのアドバイス:AIアプリケーションのコーディングを学ぶつもりなら、Pythonを学ぼう。ほぼすべてのAIコードは、Pythonと緊密に統合されている。
ChatGPTは下図のコードを出力した。
提供:Screenshot by David Gewirtz/ZDNET
Rust
ChatGPTはRustを次のように説明した。「高性能で信頼性の高いソフトウェアの構築に使用されるシステムプログラミング言語であり、メモリーとスレッドの安全性が担保されることで知られる」
ChatGPTは下図のコードを出力した。
提供:Screenshot by David Gewirtz/ZDNET