バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia-backnumber/
はじめに
前回はScilabについて概要説明。
ScilabはMTALAB/Simulinkと比較されることが多い。
由はxcosというグラフィカルにブロック線図を書けるツールの存在。
これがSimulinkに似ているところ。
今回は、Juliaについて。
これに関してはぶっちゃけあまり知らない。
登場人物
博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
Julia

まず最初に言っておこう。

なに?

Juliaは知らん!

あー、確かに最初の時も存在は知ってるけど、
使ったことは無いようなこと言ってたもんねー。

というわけでJuliaに関しては
調べながら試しながらって進め方になるだろう。
ぶっちゃけ、Juliaのこと知りたかったら他の解説サイトを見てもらった方が良い。

(ここまで自信持って知らないと言い切るのもスゲェな・・・。)
恒例のWikipedia

まずは当然ながらWikipedia。

ここ最近はWikipedia大活躍だね。
Julia(ジュリア)は、汎用プログラミング言語水準から高度の計算科学や数値解析水準まで対処するよう設計された高水準言語かつ仕様記述言語、及び動的プログラミング言語である。並行計算、並列計算、分散コンピューティング、及びAdapter パターン不要でC言語やFORTRANへのForeign function interfaceに対応している。ガベージコレクションを行い先行評価を用いるほか、浮動小数点数計算、線型代数学、高速フーリエ変換、正規表現照合のライブラリを利用できる。
Wikipediaより(https://ja.wikipedia.org/wiki/Julia_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E))

Wikipediaの内容をさらに読み進めると書いてある話だが、
JIT(Just In Time)コンパイルしているみたいだな。

JITコンパイル?

実行時コンパイラとも言うらしいな。
ここもWikipediaに活躍してもらおう。
実行時コンパイラ(じっこうじコンパイラ、Just-In-Time Compiler、JITコンパイラ、その都度のコンパイラ)とは、ソフトウェアの実行時にコードのコンパイルを行い実行速度の向上を図るコンパイラのこと。通常のコンパイラはソースコード(あるいは中間コード)から対象CPUの機械語への変換を実行前に事前に行い、これをJITと対比して事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)と呼ぶ。
Wikipediaより(https://ja.wikipedia.org/wiki/%E5%AE%9F%E8%A1%8C%E6%99%82%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9)

C言語みたいに事前にコンパイルするわけじゃなく、
実行した上で、必要な時に必要範囲をコンパイルするってことか。

そうだね。
恐らくは初回実行時はJITコンパイルが入るから見た目上の処理は遅いけど、
2回目以降は恐ろしく速い。
って性質になるのだと思う。

ほう。
それは他のツール、言語では見られない特性だねー。
言語の雰囲気

そして実際の言語の雰囲気だが、
MATLABに結構似てるな。
流石に完全互換と言うわけでは無いが、MATLAB知ってる人だったら結構すぐ使えるかも?
と思わせる仕様だ。

それは朗報な気がする。
全くやったことない文法だったりしたら、それを調べながらやるのも大変だもんね。

そういう意味ではMATLABとPythonの良いとこ取りを目指してるっぽいね。

ほう。
それは今後が期待できそうな言語だ。

再度になるが、Juliaに関しては逐次調べながら試しながらでやっていこう。
まとめ

まとめだよ。
- ぶっちゃけJuliaについては良く知らない。
Wikipadiaに活躍してもらって引用しまくり。 - 最大の特徴はJITコンパイル。
- これにより、複数回の実行に関しては類似言語/ツールからみたら最速になり得る。
- というわけでJuliaに関しては逐次調べながらの試しながらで進める。
バックナンバーはこちら。
コメント