Q&AサイトのQuoraより転載してシェアしました。
Pythonがインタープリターであることと、科学計算ライブラリが充実していることが大きいと思います。
main などの関数を定義しなくても立ち上げて計算式と数値をを入れればすぐ回答が出せるし、統計計算、確率計算、ベイズ統計など計算できるライブラリなどもimportすればすぐ使える。
それにグラフ作成も簡単で、matplotlibをimportすれば、式だけでグラフが書けグラフの形式などあまり悩まなくて済む、
インタープリト環境もipythonからjupyterへとどんどん進化して、今ではipythonで作成したプログラムをそのまま論文に貼り付けて使えるほど便利です。
一この理由ではないとは思いますが、
- 科学計算を行う処理が実装しやすい
- 科学計算をよく使う人たち(理数工学系の学者?)が好みそうな書き心地、思想
- AIなど専門的な数学知識が必要なプログラムが必要になったときに、タイミングよく流行っていた。
などがうまくそろってそういう認知のされ方になったのかと思います。
2,3が先か1が先かは、Python自体にそれほど詳しくないのでわかりませんが、現状では1のメリットは大きいようです。
Pythonに限ったことではないですが、
オープンソースで言語自体が開発されている為、ある分野の人達が多く使っていれば、よりその分野で必要とされる機能(ライブラリ)が追加されやすい状況にあります。
「科学計算」を実装しやすいから、その分野の人が使ってくれる。
↓
使っている人たちが、自分たちが必要と思うライブラリの開発や言語自体をより使いやすくするためにオープンソースプロジェクトに貢献する
↓
より使いやすくなったのでまた利用者が増える
というようなサイクルが生まれやすいんじゃないかなと思います。
numpy、scipyなどの数値計算用のライブラリができたことや、欧米の大学の授業でよく使われるようになったから、ですかね。
ただ、Pythonが科学技術計算の文脈でよく使われているのは確かですが、少し誇張されすぎな部分もありまして、科学技術計算全体で考えると、機械学習みたいな特定の分野以外ではPythonの存在感がそんなに高くない(あるいは全くない)分野も多くあります。
少なくとも、いわゆる「ITエンジニア」が認識している世界観と、科学技術計算を普段行っている本来の意味での「エンジニア」が見ている世界観はかなり違うと思ってください。
例えば、大規模な数値計算の分野では、今でも、Fortranの存在感は圧倒的ですし、C/C++が主に使われる分野もあります。あるいは、ちょっとしたスクリプトを書いて何か計算したりグラフを描いたり、といういわゆる数値計算環境としても、現在でも、なんだかんだ言って、MatlabのほうがPythonよりもユーザーはずっと(おそらく桁で=10倍以上)多いと思われます。統計分野であればRもあります。あるいは、最近は、Juliaも少しずつ使われだしています。
科学技術計算用の基本的なライブラリは、現在でも処理速度の速い C/C++ で書かれているものが多いです。
一方で、一般的な研究者が C/C++ を使うのは難しいし、すべてを C/C++ で書くのは非効率です。それで、Python、R、MATLAB 等で、 C/C++ で作られたライブラリへのインターフェースを作成して利用するケースが多いです。Python、R、MATLAB の競争では、R は データサイエンスや科学技術計算以外は弱いという欠点があり、またMATLAB は商用のソフトで高価であることから、Python を利用する人が増加し、最近では機械学習の分野で圧倒的に強くなったことやライブラリの充実度も高くなってきたことから、Python の利用者が、R や MATLAB の利用者を圧倒するようになってきています。
また、以前は科学技術計算の分野でも Java がよく使われていました。しかし、Oracle に買収されてからは、Java は、汎用言語から企業向け言語に移りつつあります。Sun の時代と比べると研究者との繋がりが薄くなっており、最近流行のデータサイエンスや AI の分野では Python に大きく遅れを取っています。
このようなことから、科学技術計算の分野で Python は最も広く使われている言語となっています。研究者の比率が高い
IEEE Spectrum の L...
呼出しが楽で記述も楽で、そこそこ速いからでしょうね
0 件のコメント:
コメントを投稿