テクニカルコンピューティング用のハイレベルでハイパフォーマンスな動的言語のJulia 1.0の最新バージョンには、言語APIの安定性と新たな組み込みパッケージマネージャが含まれる。

Juliaコンピューティングチームは先週、ロンドンで開催されたJuliaCon 2018イベントで、Juliaバージョン1.0のリリースを発表した。今回のリリースは、Juliaとしては最初の完全な安定バージョンであり、チームによると、2012年2月の発表以来、最も重要なマイルストーンである。

Julia 1.0はC ++言語に匹敵するパフォーマンスと、PythonやR言語の生産性と使いやすさの両立を目標としている。研究者グループが昨年、Juliaをスーパーコンピュータ上で使用した際には、2億個の天体を15分でカタログ化および分析することができた。従来に比較すると1,000倍の速さだ。

新たな言語APIの安定性を示すものとして、Julia 1.0用に作成したコードは、今後のバージョン(Julia 1.1,1.2など)でも引き続き動作する。

新しい組込みパッケージマネージャでは、パッケージとその依存関係のインストールが容易になる。また、プロジェクト毎のパッケージ環境のサポートや、動作中のアプリケーションの正確な状態を記録して共有することも可能だ。さらに、再設計によって、プライベートパッケージやパッケージリポジトリのサポートも導入されている。

欠損値に関する新たな正準表現も提供されている。欠損データの表現や操作は、統計やデータ科学においては基本的なものだ。すべての汎用コレクション型において、事前定義した値の欠損を要素として含むことによる、欠損値のサポートが可能である。

Julia 1.0では、すでに中核的な言語機能のひとつであるブロードキャスティング(broadcasting)のカスタムタイプへの拡張や、GPUなどのベクトル化ハードウェアに最適化された計算の実装が簡略化されている。

Juliaは動的型プログラミング言語であり、インタラクティブな使用にも適している。Juliaのプログラムは、LLVMによって複数のプラットフォーム用のネイティブコードにコンパイルされる。Juliaは説明的なデータタイプ(descriptive datatype)をサポートしているため、型定義をプログラムの明確化と堅牢化に使用することが可能である。言語としては、数学的な計算プログラミングのユースケースに適しており、数学関係の処理において優れた選択肢となっている。また、いくつかの数値データ型がサポートされており、並列処理も基本機能として使用できる。

Juliaの言語機能である多重ディスパッチは、さまざまなオブジェクト指向プログラミングと関数プログラミングのパターンの表現を容易にする。標準ライブラリには、非同期I/O、プロセス制御、ロギング、プロファイリング、およびパッケージマネージャが提供されている。多重ディスパッチは、数値ないし配列的なデータ型の定義に無理なく適合する。既定のJuliaパッケージには、単位量の行列と、通貨と色のデータテーブル列が用意されている。

JuliaはMITライセンスモデルに基づいている。組込みのJuliaコマンドラインを使って端末で実行する他、ブラウザを使って、JuliaBox Webサイト上のJupyterノートブックで実行することも可能だ。

最新リリースに関する詳細な情報は、Julia 1.0のドキュメントを参照するか、あるいはダウンロードして実際に試して頂きたい。その他、Julia Packagesやソースコード、ディスカッションフォーラム、Slackチャネルにも有用な情報がある。