Julia(プログラミング言語)とは、実行速度と書きやすさの両立を目指したプログラミング言語である。
概要
Juliaとは動的型付けのプログラミング言語である(静的型付けも使える)。スクリプト言語に分類されコンパイルは実行時にLLVMを用いて行われる。
C言語で書かれている部分はわずかで、整数の処理なども含めて言語処理系の大半はJuliaで書かれているというのも特徴。
新参言語の例にもれずライブラリは少ないが、C言語やFortranのライブラリを直接呼び出し可能にすることによって補っている。Python, R, C++, Javaを呼び出すためのライブラリもある。
歴史とか背景とか
公開されたのが2012年2月、バージョン1.0のリリースが2018年8月8日であり、プログラミング言語としてはかなり新しい部類に入る。開発の中心になったAlan Edelman氏はMITの教授。
科学技術計算その他もろもろを、分散コンピューティングその他もろもろでやりたいというだけでなく、C言語並みの実行速度その他もろもろも目指すという、「ぼくのかんがえたさいきょうのプログラミング言語」臭がしないでもない。
しかし、実際にスクリプト言語最速といわれてきたJavascriptやコンパイル言語であるJavaを上回る実行速度を叩きだして注目を集めた。
バージョン1.0のリリース後は、ディープラーニングなどで行列演算を高速に行う需要があることなどを背景に、2018年から2019年にかけて急速にシェアを伸ばした。
言語仕様の特色
Juliaの最大の特長はその実行速度であるが、言語仕様にもいくつか特色がある。他の言語にはない仕様上の主な特色は以下の2つであろう(異論は認める)。
数式の記述が容易
- 多くのプログラミング言語で 2 * x と記述するところを 2x と記述することもできる。
- Unicodeの演算子が定義されており、>= の代わりに ≥ と書くことができる。
- 円周率などもUnicodeでの定義が存在し、pi と書いても πと書いても通用する。
- REPLではLaTeX風の記法からコード補完で上記Unicode文字を記述できる。
- ベクトルや行列の記述法が充実しており、たとえば行列 A の転置行列はA' と書くことが出来る。
- 複素数も 1 + 2im のように書くことができる。
以上のような仕様により、数式をほぼそのままの形でソースコードに記載できる。
ただ変数 x と y の積を xy とか x y とか書くことはできず、x * y と書かねばならないという細かい弱点はある。
1オリジン
C言語の時代からの流れで、ほとんどのプログラミング言語が配列などにおける先頭の要素は0番として数えてきた(0オリジンという)。行列 A の1行1列目は A[0][0] だったのだ。この仕様のため現実世界の問題をプログラミングに持ち込む時にしばしば先頭を間違えて1ずれるというミスが頻発してきた。
Juliaは、最古のプログラミング言語(というか2020年現在でも科学技術関連で根強い人気がある)FORTRANにまで遡り、先頭を1番から数える1オリジンを復活させた。これにより上記の弊害が解消される。
もっとも、既存言語のプログラマーにしてみれば0オリジンで考えてきたことをJuliaに移植する時に再び1ずれるということであり、アレルギー反応を起こすプログラマーもいる。
開発環境
REPLで実行する以外の環境としては、主なものでは以下のような環境がある。
IJulia
Pythonで使われる対話型環境IPythonとその後継のJupyterでJuliaを使用するのがIJuliaである。
Visual Studio Code
Visual Studio Codeのプラグイン。下記Junoの後継として2020年7月にバージョン1.0がリリースされた。
Juno
Juliaの統合開発環境。Atomエディタ上で動作する。公式的存在であったが、Atomエディタ開発元のGitHub社がMicrosoftに買収され、Microsoft社製Visual Studio Codeと競合するAtomエディタの開発が鈍ってきたことを受け、こちらは開発終了となっている。
関連リンク
関連項目
- 1
- 0pt