全3528文字

 このところ、プログラミングを学ぶことの意義を考えている。というのは、生成AI(人工知能)の進化により、長期的にはプログラミング言語やプログラミング自体が不要になるというコラムを書いたからだ。短期的にも、「ChatGPT」や「GitHub Copilot X」といったAIによるプログラムコードの自動生成は、指示を受けて作業としてコードを書くだけのプロブラマーにとっては脅威だろう。

 とはいえ、現状ではソフトウエアをつくるにはプログラミングの知識が必要だし、そうした知識がすぐに不要になることはなさそうだ。AIが生成したコードにしても、そのままでは動かないケースがあり、修正するには人間側にプログラミングの知識が必要になる。

 こうした生成AI全盛の時代、いわば「ChatGPT時代」に学ぶべきプログラミング言語は何だろうか。

 「AIといえば、やはりPythonではないか」。そう考える人は多いだろう。私もそのことを否定するつもりはない。実際に、AIの開発にはPythonがよく使われている。しかし、なぜ使われているかをもう少し突っ込んで考えてみると、「本当にPythonだけでいいのか」という疑問もわいてくる。

 PythonがAI開発によく使われている理由は、AIの実装に必要なライブラリーやフレームワークが充実しているからである。要するにエコシステムがあるのだ。Pythonの言語仕様が特にAIに向いているわけではない。

 Pythonの言語処理系は、数あるプログラム言語の中でも処理性能はかなり低い部類に入る。一方、AIは内部で膨大な処理を行わなければならず、実用的なAIを実装するには高い処理性能が必要だ。なぜこのような矛盾が存在するのか。

 答えは、「AIの中核となる処理はPythonでは書かれていない」ということだ。Pythonは、様々なライブラリーやフレームワークを呼び出したりつなぎ合わせたりするのに使われているだけである。このような言語を「グルー言語」と呼ぶ。グルーとは接着剤のことだ。

 ではAIの中核処理は、どのような言語で書かれているのか。

 例えば、PythonにはAIを含むデータサイエンスの分野で多用される「NumPy」というライブラリーがある。多次元配列の演算を高速に実行するものだ。NumPyの演算処理はPythonではなく「C言語」で記述されている。要するに、Cで書かれた高速演算機能をPythonから使えるようになっているのだ。

 またAIの開発には、「TensorFlow」や「PyTorch」といったディープラーニング(深層学習)のフレームワークもよく使われる。これらはPythonで記述されているが、処理性能が必要な部分には「C++」という言語が使われている。