over 4 years ago

Julia は科学技術計算向けのプログラミング言語です!
どういう思想のもと作られたかは原文をわかりやすく翻訳されているサイト("なぜ僕らはJuliaを作ったか")があるのでそちらを見てもらうとして、わかりやすくまとめられたスライドを引用するとつまりこういう言語です。

Julia はオブジェクト指向と関数型プログラミングのマルチパラダイム言語で並列処理も簡単に書くことが出来ます。
実行速度は公式サイトに載っているベンチマークによれば、 C言語の2倍ぐらいの遅さしかありません(速い!)

コードのスタイルはPythonに似ていて”Juliaでジュリア集合を描く”に載っているコードを眺めると雰囲気がわかると思います。

ここまでで興味をもった人は是非以下のチュートリアルを試してみてください!

またMITで行われたJulia Tutorial のビデオもあるのでこちらも要チェックです!
Videos from the Julia tutorial at MIT

JuliaはOSSであり一部を除きMITライセンスで公開されています
JuliaLang/julia

実際に試してみた

実際にJuliaを試してみたので環境構築の手順と簡単なサンプルコードを紹介します。
OSX 10.9.1 に導入しました。
まず Julia 公式ページの downloads から Mac OS X Package をダウンロードします。

dmg をダブルクリックすると julia.app があるのでアプリケーションフォルダに移動します

この julia.app を起動しても使えますが僕はコマンドラインから使うために .bash_profile に次のような設定をしています。

alias julia="/Applications/Julia-0.2.0.app/Contents/Resources/julia/bin/julia"

これでターミナルから直接 julia を起動することが出来ます。
julia コマンドだけだとインタラクティブシェルが起動し色々と試すことが出来ます。
また .jl ファイルにコードを書いて動かすことも出来ます

julia script.jl

あとワンライナーも書けます

julia -e 'for x in ARGS; println(x); end' foo bar

試しに線形回帰分析をするプログラムを Julia で書いてみましょう

X = [1 1 3 4; 2 -7 4 5; 2 4 4 -6; 4 8 6 7; -5 6 7 8]
y = [3,6,2,5,7]

tXX = transpose(X) * X
beta = inv(tXX) * transpose(X) * y

println("Coefficient:")
println(beta)
println("------------")
println("Recalculate:")
println(X * beta)

実行結果です

Coefficient:
-.056742527998756565
-.2083418325222678
.9638420219327641
.14986352730910832
------------
Recalculate:
3.2258958145137013
5.949593495934959
2.0093345377898224
4.938392050587175
6.979464016862392

Julia は numpy 並みの線形代数演算を標準で実装されています。
Julia を使ってコーディングする時は専用のIDEも開発されているので利用してみてもいいかもしれません.
コードを書く時に便利なチートシートもありますよ!

Julia は最新のバージョンが v0.2.0 とまだまだ開発途中のプログラミング言語です。
しかしその理想は高く開発も活発に続けられているので今後の発展に期待できると思います!
科学技術計算をするなら是非覚えておきたい言語ですね

← ファミ通への解答 #ウチ姫 人気投票結果発表! #ウチ姫 →
 
comments powered by Disqus