Warning: count(): Parameter must be an array or an object that implements Countable in /home/fromchaosto/www/teq/wp-includes/post-template.php on line 284

Warning: count(): Parameter must be an array or an object that implements Countable in /home/fromchaosto/www/teq/wp-includes/post-template.php on line 284

Warning: count(): Parameter must be an array or an object that implements Countable in /home/fromchaosto/www/teq/wp-includes/post-template.php on line 284

Warning: count(): Parameter must be an array or an object that implements Countable in /home/fromchaosto/www/teq/wp-includes/post-template.php on line 284

pythonの歴史(〜2016年) : from Data Science Perspective

投稿者: Haruka Matsuzaki
12月 27 2016 年

はじめに

機械学習業界がpython一色になっている。現在のpythonは昔のpython(1995年頃)とは別物で、

  • 科学計算(NumPy/SciPy/scikit-learn)
  • 数式処理(Sage=セイジ)
  • データ整形(pandas)
  • 可視化(matplotlib)
  • インタラクティブ(notebook)

といったパッケージを備えている。なぜこのように強化されたのかを知りたいというモチベーションがあり調査した。

年表

1980年

ABC言語が発明される。グイド・ヴァン・ロッサムが開発プロジェクトに参加。

特徴:

  1. ソースコードがC言語の1/4の長さになる
1994年

python言語がリリースされる。グイド・ヴァン・ロッサムが発明。

特徴:

  1. 読みやすさ・書きやすさ
  2. ラムダ関数・map関数・reduce関数を初期バージョンより備えていた
1995年

グイド・ヴァン・ロッサム自らmatrix-sigに参加。pythonで行列計算を可能にするプロジェクト。

2001年

matrix-sigはNumArrayとして開発が継続されていた。その資産の上に、SciPy 1.0リリース。

一方、IPythonがリリースされ、インタラクティブコンピューティングへの道が敷かれる。

2003年

matplotlibリリース。pythonに可視化機能が備わりMATLABの競合への道を歩み始める。

2005年

Sageリリース。Sageの設計思想は車輪の再発明を避けることであり、オープンソースパッケージを統合したものとなっていった。

2006年

NumPy 1.0リリース。pythonは1979年から続くBLASの競合に。必ずしもC言語を使わずに済むようになった

2007年

scikit-learnリリース。release noteを見ると、当時はガウス混合モデルやニューラルネットワークがなかった模様。

SymPyリリース。Sageの数式処理エンジンとなり(しましま(@shima__shima)氏に感謝!)、pythonは1988年から続くmathematicaの競合に

2011年

pandas 0.30リリース。元はAQLのクローズドソースだった。pythonはplyr/dplyrを備えたRの競合に

 

この段階で、現在の状況に至るためのお膳立ては整ったのであった。

  • [2006] 科学計算(NumPy/SciPy/scikit-learn)
  • [2005] 数式処理(Sage=セイジ)
  • [2011] データ整形(pandas)
  • [2003] 可視化(matplotlib)
  • [2001] インタラクティブ(notebook)

・・・ところで、私が大学院に入学したのは2008年であった。研究室ではintel C compilerしか使われていなかった。そして、BLASやLAPACKをCから叩いていた。スクリプティング言語としては、Rubyが使われていたが、Webアプリは誰も書けなかった。mathematicaやMATLABはよく使われていた。特に脳からの計測データ(電流/光トポ)はMATLABに読み込まれていた。Sageを使ってる人は1人だけいた。

つまり、発明されたのち、普及フェーズをへてイノベーションが起こるという型になっており、イノベーションの波はまだ到達していなかったのだろうと思う。

ということで、この後には普及の歴史が続くこととなる。

年表2

2014年

Project jupyter開始。jupyterはipythonをカーネルの1つに降格し、CでもHaskellでもScalaでもRでもJuliaでも要は任意の言語で動作するようにした。これにより普及のゴングが鳴らされた。

つづく

次ページへ »

« 前ページへ

コメント / トラックバック 4 件

  1. しましま より:

    このあたりについては,以前,Oliphant さんにお話しいただきました
    多くプロジェクトをまとめて,NumPyに統合した Oliphant さんのご尽力は大きいと思います
    http://www.slideshare.net/shoheihido/sci-pyhistory

    • Haruka Matsuzaki より:

      おお。実は今日ネットサーフィン(死語)はじめて、初めて調べてるんですが、書いてみるものですね!勉強になります。ありがとございます。

      スライドみると、1997年から関わっていて、まさに歴史の生き証人、むしろ当事者なんですね。

      ちなみに、情報不足についてはまだまだあるのでアップデートかけてく予定ですが、間違ったことや嘘は書いてませんですよね?

      • しましま より:

        若干,気になる点は sage はいろいろなライブラリを統合してまとめたもので,数式処理自体は SymPy というものがになっているかと思います

        • Haruka Matsuzaki より:

          SymPyが本体だったんですか・・・お恥ずかしいですが今まで知りませんでした。

          調査してすぐ修正します。

          貴重なお時間さいていただき有難うございました〜

このエントリーのトラックバックURL