Juliaとは?
マサチューセッツ工科大学で2012年から開発されているプログラミング言語で、2018年にバージョン1.0がリリースされ、実務での利用にも耐えられる性能となりました、そのため最近急速に注目されてつつあるプログラミング言語です
Juliaの特徴
- Cのように高速
- Pythonのように汎用的に書ける
- Rのような統計処理ができる
- Matlabのように線形代数の処理も可能
- 対話型
- 動的型付け言語
- コンパイル言語
こういたJuliaの特徴をまとめると、書きやすくて読みやすくて処理読度も早くて汎用性も高い。ということになります。
これまでのプログラミング言語では処理速度と書きやすさは反比例するものでしたが、JULIAは、書きやすさと処理速度の両方を兼ね備えたプログラミング言語になります。
このためJuliaはJAVAの速さとPythonの書きやすさを併せ持った次世代のプログラミング言語として注目されています。
Juliaが高速な理由
基本的にプログラミング言語は実行の際にコンピューターが理解できる機械語に翻訳する必要があります。
CやJAVAはプログラムを一度に全部機械語に翻訳して実行するコンパイラ方式であるのに対して、PythonやJavascriptは一行一行機械語に翻訳するインタプリタ形式であるため前者と比較すると処理速度が落ちてしまいます。
そして、JuliaではJIT(Just in time)というプログラム実行時にコンパイルを行う方式を採用することで、高い処理速度と書きやすさを実現しています。
Juliaの処理速度は遅い遅いと言われるPythonやRより早いのはもちろんのことながら、javascriptやJavaよりも高速です。(さすがにCよりは若干遅いらしいです)
またプロセスとスレッドの並列化によりSparkなどを用いなければいけないPythonとは違い、並列処理も簡単に行えるように設計されているため、大規模システムでの開発やビックデータの分析にも使えそうというのがJuliaの期待されている点です。
他言語インターフェイスが充実
Juliaはまだ新しい言語で20~30年の歴史がある他の言語の比べてライブラリがまだ十分でないなどの課題もありますが、APIを使用することでPython・JAVA・R・C(++)のライブラリを呼び出すことも可能です。これによりJuliaは歴史の浅さをカバーしています。
また逆にPythonやRからJuliaの機能を呼び出す「Pyjulia」「juliacall」というライブラリも用意されており、相互互換もあります。
Juliaのダウンロード・インストール
Juliaはオープンソースで無償で誰でも使用することが可能です。
ダウンロードページ→https://julialang.org/downloads/
またPythonの開発環境であるAnacondaに付属しているデータ分析ツールであるJupyterNotebookはJulia Python R 用のノートブックなので、Juliaも環境構築すれば利用することが可能です。
関連記事:【Python】Anacondaのインストールと初期設定から便利な使い方までを徹底解説!
関連記事:【Python】Jupyter notebookの基本的な使い方を分かりやすく説明する
Juliaの基本文法
Juliaは基本的にPythonやRのような動的型付け言語ですが、環境によっては静的に切り替えることも可能であり、両者の良いとこ取りをしたような仕様になっています。
a = 4::Int a = 4 # 型を調べる typeof(a) # 型の変換 convert(Float64,a) # プリント println('hello world')
変数名には日本語も使用可能。pythonのformat文のような書き方も可能
名前 = 田中 println("私の名前は${名前}です")
・四則演算
1 + 2 * 5 >11 2^10 1024 sqrt(9) >3 A = [1 2 3; 4 5 6; 7 8 9] b = [6,7,8] A*B sin(pi) - cos(pi)
・for文・if文
# for文 x = zeros(100) for i in 1:100 if i %= 3 == 0 x[i] = 6 / 100 * i end
・グラフのプロット
using Gadfly y = sin.(x) plot(x = x, y = y)
こうしてみると文法的には何となく見るとPythonのコードと見間違えそうなくらいPythonと似ているため、Pythonを使用している人であれば、学習は容易だと思います。
終わり
このまま開発が進んでいけば将来的にはPythonだけではなく他の現にもとって代わる次世代のプログラミング言語になるかもしれないと個人的には密かに注目しています。
ただまだ実務で使われるようなものではないので、簡単ではありますが、初心者が勉強するべき言語ではないと思います。今のところはPython辺りでいいと思います。
コメント