いろいろな歴史的偶然の結果と言っていいと思います。ほかの言語の可能性もありえたことでしょう。Rか、C++などはあるいは……。

AIなどのソフトウェアにPythonが好まれるのは、それまでの下回りがととのっていたことが大きな理由であると思います。これまでデータ分析などにはPythonかRが使われていました(それかJuliaです。データ分析にはjupyter notebookというソフトウェアがよく使われていますが、jupyterという名前もjulia、python、Rを組み合わせた名前だと言われています)。この中でも、新興言語でそこまで知られていないJuliaや統計分析以外の分野ではほぼ使われないRと比べてPythonはほかの分野でもよく使われていて人気がありました。AIは大規模データ分析などと関連が深く(AIのチュートリアルなどではJupyterは非常によく使われていますし)、このためこの3つの言語のなかから選ばれ、必然的にPythonが好まれることになったのだろうと思います。

ではなぜPythonがデータ分析の分野で広く使われるようになったのかというと、numpyとPandasという2つのフレームワーク・ライブラリの存在が非常に大きいでしょう。numpyはベクトルや行列の計算を高速に書けるライブラリで、データ分析や機械学習には欠かせません。Pandasはnumpyをうまく利用して、さまざまなデータをデータフレームというかたちで利用できるものです。こういうものの存在が大規模データ分析用の言語としてのポジション作りに非常に大きかったのは間違いないでしょう。

こうして考えると、非常に大きな存在はnumpyだと考えられます。numpyがなければPandasもおそらくなく、データ分析に使われることもなく、AIに利用されることもなかったのではないか、と思います。ところでnumpyは非常に歴史のある存在で、1995年まで歴史をさかのぼれます。

1995年というのはいまからおおよそ30年ちかく前のことです。Pythonは当時はまだ1.xの時代です。またJavaの登場もRubyの登場も1995年だといえばその古さもわかるでしょう。この当時から、科学技術計算をスクリプト言語で実行したいという野心をもったグループがいて、彼らの営為がnumpyというかたちでまとまりました。しかもこのグループにはPythonの作者であるGuido van Rossum自身もおり、numpyのために言語仕様を拡張したとされています。

そういう長い歴史のあるnumpyのうえにPandasとJupyterが築かれていて、それゆえに機械学習のための言語としての地位を確立したのだと思います。ほかのプログラミング言語で、このポジションを確立できた言語はほとんどありません。たとえばRubyなども類似の試みがありましたが、スタートが遅すぎたと思います(NMatrixの登場が2012年とかですから)。このころにはPythonはもう地位を確立して先に行っていました。しかしRuby以外には同様の試みをしようとした言語はほとんどないんじゃないでしょうか。

---

もしnumpyの試みが存在しなかったとしたらどうでしょうか。numpyなどの存在はPythonの作者であるGuidoが研究機関に勤務していたことと無関係ではないでしょう(これは私の推測でしかないですが、まぁたぶん……)。そういうことがなく、numpyが生まれていなかったら、あるいはもっと登場があとだったら、今のようにPythonが機械学習のためのプログラミング言語として使われることはなかったかもしれません。

その場合どうなっていたでしょうか。ひとつにはR言語がもっと活用され、機械学習もRでやるということになっていた可能性があります。もしくはJuliaのような言語の勃興・発達がはやくて、そういう別言語が席巻していた可能性もあるでしょう。

しかしもっとありうるのは、C++が使われているということでしょう。現実には機械学習においてはPythonはほとんどグルー言語としての存在になっていて、コアの機械学習の処理はもっぱらC++で書かれています。またかつてはC++の機械学習フレームワークもいくつもありました。というわけで、C++の上に直接機械学習フレームワークがのっかるという構成のほうがありえた未来かもしれません。

とはいえ全部C++で書いてビルドしなおすというのは研究用途などにはまったく向いていなくて大変ですから、フレームワークとしてはC++でありつつ、機械学習のモデルの構成などは別の独自なDSLで記述して動的に再構成できるような機能をもつものになっていたかもしれません。

本題にもどると、深層学習の人気が高まり機械学習フレームワークが登場するころにはPythonはほぼ必然的な選択肢であったと思います。が、そうなった過程を考えると歴史の偶然が作用したといってよくて、それなりに昔にあった偶然の結果であったとは言えるんじゃないかと考えています。それがなければ今のような地位にはならなかった可能性は大いにあると思います。

1年

利用規約プライバシーポリシーに同意の上ご利用ください

Jun Mukaiさんの過去の回答
    Loading...