Juliaを始めてみる(Windows10)


最近注目を集めているデータサイエンスの言語としてJuliaがある。
ウチの子から聞いて知ったが、JupyterNotebookの語源は
"Ju"lia + "Pyt"hon + "R"でということ。なるほど。
(ちなみにJupyterNotebookの前はIPython notebookだったみたい。だから拡張子が、.ipynbなんだね。)
今回はJuliaを始めるための記事ということで、いろんなとこから調べたものをまとめるという記事になります。

Juliaについて

PythonRとは何が違うの?」
から。
まずは簡単な歴史から。
僕が学生だった頃はC言語が主流で、在学中にJavaが流行り始めたという流れ。途中にRが出てきた(研究ではMathematicaを使ったりしてたが)。
このようにプログラミング言語はいろいろある。
その中でCよりも古くからよく使われているのがFORTRANかな。
そんな数多くあるプログラミング言語を大きく2つにわけると次のようになる。

  • 静的型:FORTRAN,C,C++.JAVA
  • 動的型:R,Python,Mathematica

動的と静的って?いろんな違いはあるが、よく言われるのが「速さ」の問題。
静的は速く、動的は遅い。
それなら静的の方がいいんじゃないか?とか言われそうだが、動的の方がプログラミングはしやすい(多分カンタンと言って問題ない)。動的はコード書きながらそれ実行できるし。その分、実行速度の面では期待しちゃだめよって感じ。
基本的にこれら2つの問題はトレードオフで両方を兼ね備えるのは難しい。
その両方を求めてできた言語がJuliaになるわけ。2012年にMITで。
つまり、進藤先生らの言葉を借りれば
Pythonのように書けて、Cのように動く
言語がJuliaという感じ(らしい)。

実際に使ってみて思ったのはインストール(環境構築)すら簡単ですぐに使えるようになるし、プログラミングコードも簡潔に書けるからむしろPythonよりも簡単かも。と思ったくらい。

Juliaを使ってみる

Windowsへのインストールを想定しています。

Julia

こちらから自分のプラットフォームに合わせたファイルをダウンロードしてインストールしてください。
その後はインストール先にPathを通すだけ。基本的にこれで使えるようになります。
Pathは「コントロールパネル」$\to $「システムとセキュリティ」$\to$「システム」$\to$「システムの詳細設定」$\to$「環境変数」
でPathの項目にインストールした場所を追加するだけ。
(これでわからない人はどっかでPathの追加方法などを調べてみてください。)

インストールが終わったら起動してみる。
起動すると

のようなPERLの画面が出る。ここに適当な計算式を入れてエンターすれば実行できる。
(困った人は2+3とかprintln("Hello zumilab")とか入力すればいい)
パッケージ管理も簡単で上の画面で]を入力する。

(v1.4) pkg>

のようにJuliaのバージョンの表示とパッケージ管理モードに移行する。
ここでadd パッケージ名を入力すればよい。
ヘルプモードへの移行はJuliaモード時に?を押せばよい。JuliaモードへはBackspace押せば戻れる。

これで使えるようになったけど今後を考えるとずっとPERLでやるのは。。ってなるよね。
僕はPythonをVSCodeで使ってるからそっちでJuliaもという感じでやったりするけどそれもそんなに面倒じゃない。VSCode側でパッケージインストールすれば終わりだし。
とはいえ、便利だからとりあえずJupyterNotebookでは使えるようにしようか。
IJulia.jlというパッケージをJuliaにインストールする必要があるので、

(v1.4) pkg> add IJulia

を実行すると必要なパッケージがインストールされる。それ終わったら、BackSpace(Propagationじゃないよ)押してjuliaモードにして、

julia> using IJulia
julia> notebook()

とすればJupyterNotebookが起動して、今後はJupyterNotebookからカーネルでJuliaを選べるようになる。
これで環境構築は多分おわり。カンタン。Pythonのときは色々やらなきゃだったから余計にそれ感じる。(PythonはAnacondaの記事が多すぎてそれで最初混乱した)
しかもパッケージはPythonとかRほど充実していないから使い勝手悪いと思うかもしれないけど、PythonとかRもコンピュータに入っていれば簡単に呼び出せるってのもいいよね。
そうなるともうJuliaをメインでもよいのかもしれないね。
これは言い過ぎか。
では、次はまた別の記事で(多分CCA(Canonical Correlation Analysis)?)