【じゅりあ】

Julia(ジュリア) とは?

最終更新:
💡 数値計算を、対話的に書いて性能も工夫する

数値計算や科学技術計算で活用される汎用プログラミング言語。動的な書き方とコンパイルによる高性能を目指し、引数の型の組み合わせで処理を選ぶ多重ディスパッチを重視する。

📌 このページのポイント
型に合う処理で、数値計算する 同じ + でも、引数の型に応じて選ぶ整数 + 整数2 + 3 = 5行列 + 行列12345678681012+=すべての引数の型の組み合わせを見る適用できる、最も具体的なメソッドへ初回の待ち時間と計算の性能を分けて測る
計算は独自の例です。Juliaは引数の型の組み合わせに適用できる最も具体的なメソッドを選び、性能はコード・入力・環境等によって変わります。
ひよこ ひよこ
Juliaは、数値計算だけの言語?
ペンギン先生 ペンギン先生
数値計算や科学技術計算に強みがあるけれど、汎用言語だよ。対話的にコードを書けて、配列や数式を扱える。Webアプリや他のプログラムとの連携などにも使えるんだ。
ひよこ ひよこ
Cと同じくらい速いの?
ペンギン先生 ペンギン先生
高性能を目指した言語で、LLVMを使って機械語へコンパイルするよ。ただし何を書いても常にCと同じ速さになるわけではない。アルゴリズム、型の使い方、メモリー確保、ライブラリーや入力条件で変わるので、必要な処理を実測しよう。
ひよこ ひよこ
最初の実行が遅いのは、なぜ?
ペンギン先生 ペンギン先生
初めて呼ぶメソッドなどでは、コンパイルに時間がかかることがあるよ。パッケージの読み込みにも時間がかかる場合がある。初回の待ち時間と、準備が終わったあとの計算時間を分けて測ると、使い方に合うか判断しやすいんだ。
ひよこ ひよこ
多重ディスパッチって何?
ペンギン先生 ペンギン先生
同じ関数でも、引数の型の組み合わせに合うメソッドを選ぶ仕組みだよ。たとえば整数同士の足し算と、行列同士の足し算では扱い方が違う。Juliaはすべての引数の型を見て、適用できる中で最も具体的なメソッドを選ぶ。Juliaだけに存在する発明という意味ではないよ。
ひよこ ひよこ
Pythonから、全部移すべき?
ペンギン先生 ペンギン先生
目的と既存のコードによるよ。必要なライブラリー、開発環境、運用やチームの経験も考えよう。JuliaにはPythonやC、Fortranなどとの連携手段もある。計算の一部で使う方法も検討できるけれど、連携の手間やデータのやり取りも含めて確かめるといいね。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Julia」って出てきたら「数値計算に強みがあり、書きやすさと性能を目指すプログラミング言語」と思えばだいたいOK!
📖 おまけ:英語の意味
「Julia」 = プログラミング言語の名前
💬 数値計算だけでなく、アプリ開発や他の言語との連携にも使えるよ。

参考資料

← 用語集にもどる