見出し画像

Juliaの現在地

2019年年頭に次のような記事がでました。GitHub上で機械学習関連プロジェクトで使われている言語のランキングです。

これは2018年1年間でどの言語が機械学習関連のプロジェクトで使われたかの結果を反映しています。Pythonがトップに来るのはほぼ予想どおりでしょうか。データサイエンスの分野ではPythonやRをよく聞かれるかと思いますが、Apache Spark関連でScalaが高いのかもしれません。

余談ですがデータサイエンスは統計学といっても過言ではありません。統計学を無視してデータ分析しても図や表や計算結果などもっともらしいものは出せてしまうのですが、ちゃんと統計ルールに基づいて出されたものでなければその結果を信じる事はできません。

そして統計分析に特化して使いやすいようにつくられたのがRです。Rがデータサイエンス分野でよく使われるのも想像できると思いますが、そんなRを抑えてJuliaがなんと6位です。

2018年にJuliaはVersion1.0をリリースしました。これも大きかったと思いますが、Juliaはプレゼンテーションでも最近よく目にします。

例えば2019年9月にNVIDIAのWebinerを見た時もJuliaが普通に紹介されています(ソース)

Apache SparkはBig Dataを扱う上でとても人気のあるフレームワークですが、IBMもApache Sparkで使われる言語はScala、Juliaに変わるのでないかと予測しているようです。現時点でJuliaの名は一切出ていないにも関わらず。

Juliaはインタプリタ型言語のように振る舞いますが、一度事前にコンパイルして実行します。ですからコンパイル前から実行速度を比べたらPythonやRよりスピードが遅い時もありますが、一度コンパイルされてからの速度はとても速いです。

Apache Sparkを使われている方は数GBのCSVファイルを読み込む時にnumpy/pandasとSparkを比べて読み込む速度の違いに喜ばれた方もいるかもしれませんが、それぐらいの違いをPythonとJuliaを使っていると感じることがあります。

勘違いしてほしくないですが、JuliaがすぐPythonにとって代わるわけではないという事です。現状Data Science分野においてPythonがトップ言語であることは疑う余地もありません。

Coursera, Udacity, Udemy, アメリカでも様々なオンライン講座がありますが、Data Science, Deep learning, Machine Learningの分野ではほぼPythonのコードが使われています。Data Science分野、ML/DL分野でPythonを使わないほうが不思議なくらいです。

ただJuliaにはPyCall, RCall, CxxというPackageがあり、Julia環境からPythonやR、C++のコードを呼びだし実行することが可能です。Jupyter notebook上でR環境、Python環境を選ばなくても、Julia環境でPythonやRのコードを必要に応じて実行できるわけですね。これが一番ありがたいかもしれません。それでもJuliaはあくまで成長過程の言語です。ただ無視するにはもったいない。

どれを学べば・・・というより、今はPythonとJulia両方やれば?という状況ですね。一応どういう時にJuliaを選べばいいかというガイドラインを書いた人のサイトをみつけたので載せておきます。

Julia 1.3が11月26日にリリースされました。昨年、6年の歳月をかけてやっと1.0がリリースされましたが、順調だと思います。後3年たって、リリースから10周年の2022年ぐらいにはData Scienceの分野でかなりの位置を示すようになると思います。これからが楽しみです。

Data ScienceならPython「も」Julia「も」やりましょう。なぜか。以下のサイトはJuliaのMultiple dispatchの使い方を、Pythonと比べてわかりやすく違いを説明していますが、どっちがいいわけではなく、その違いを理解して使えばいいわけですから。

最後に「仕事」はとれるのか?ですが、最近は「Python, R, or Julia」言語を使える人と、PythonやRだけでなくJuliaをちゃんと入れて募集しているものが出てきています。この傾向は2020年には更に加速するかもしれません(ただ州によりますね。NYは増えてますが、Python都市ともいえるAustin TXではJuliaはまだまだ認知されてません)

2020年が楽しみです。

この記事が気に入ったらサポートをしてみませんか?