Julia とは?

Julia

Julia

NRIのOpenStandiaが提供するJulia最新情報

Juliaの保守サポートサービスの内容はこちら Juliaの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Juliaバージョンアップ情報

すべてを見る

更新日:2021-05-19

Juliaの概要

Juliaは、動的汎用プログラミング言語でありながら、科学技術分野などの大規模数値計算において従来の動的言語に比べ格段に早い速度でコードを実行可能であるという特徴を持っています。2009年に開発が開始され、2012年にオープンソースをとして公開されました。開発者によると、Juliaと言う名前には特別の意味はなく、単にかわいい名前というだけであるということです。
Juliaの特徴であるコードの実行速度は、オプティマイズされていないPythonのコードやRの数倍の速さであるとされており、C言語のコードに引けを取らない実行速度を出すコードを記述することも可能とされています。動的プログラミング言語でありながら、スタティックなC言語に迫る速度でコードを実行できるポイントの1つは、LLVMを使って実装されたJITコンパイラを備えている点が挙げられます。
Juliaは、すでに多方面で実際のシステムを開発するのに使われていますが、Juliaの名前を一躍有名にしたのは、2015年のニューヨーク連邦準備銀行によるJuliaを使ったアメリカ合衆国経済のモデル化で、それまで使用していたMATLABによる実装よりも10倍の速度になったとされています(*1)。

1*https://juliacomputing.com/case-studies/ny-fed.html

TOPに戻る

Juliaの主な特徴

実装 C、 C++、 scheme
パラダイム マルチパラダイム、マルチディスパッチ、メタプログラミング
タイプシステム ダイナミック(スタティックな言語のように、変数に型指定することも可能)
スレッドによる並列実行 グリーンスレッドにより、OSネイティブのスレッドに頼らずに並列実行環境を提供
パッケージマネージャー ビルトインのパッケージマネージャーを提供。Pkgコマンドでパッケージ管理が可能
対話実行環境 ビルトインのREPL
モジュールシステム モジュールによる名前空間の切り分け、using、importキーワードによりmodule(package)をロード
豊富な型 豊富なビルトインの型(Type)が提供されている。数値型は128bitまで対応。ユーザ独自の型は、Structキーワードで定義可能で、ビルトインの型と同等の速度
エラーハンドリング try-catch、finally、error、throw
ジェネリックファンクション マルチディスパッチは別の型の引数を取る同名関数を定義することで可能。Juliaではそれぞれをmethodと呼ぶ。
例)
julia> f(x::Float64, y::Float64) = 2x + y
f (generic function with 1 method)
julia> f(x::Number, y::Number) = 2x - y
f (generic function with 2 methods)
メタプログラミング Lispライクなmacroに加え、他の豊富なメタプログラミング機能によりメタプログラミングを可能としている。
他言語の呼び出し FFIを介さず、ネイティブ機能でC言語、Fortranの関数呼び出しが可能。
PyCallパッケージによるPythonコードの呼び出しが可能。
CxxパッケージによるC++コードの呼び出しが可能。
他言語からの呼び出し C/C++から、Juliaコードを呼び出すことが可能(<julia.h>ヘッダファイルをincludeする)
Julia C APIを使って、PythonやC#から呼び出すことも可能。
Unicodeサポート UTF-8を含むネイティブでのUnicodeの完全サポート
開発環境 テキストエディタ(Emacs,Vim, Sublime Text)
Juno(Atom plugin)
julia-vscode(VisualStudio Plugin)
julia-intelliJ(IntelliJ plugin)

TOPに戻る

Juliaの動作環境

macOS 10.8+ x86-64 (64-bit)
Windows 7+ x86-64 (64-bit)
i686 (32-bit)
Linux 2.6.18+ x86-64 (64-bit)
i686 (32-bit)
Nvidia PTX (64-bit)
ARMv7 (32-bit)
ARMv8 (64-bit)
x86-64 musl libc
PowerPC (64-bit)
FreeBSD 11.0+ x86-64 (64-bit)
i686 (32-bit)

TOPに戻る

Juliaのライセンス

Juliaは、MITライセンスの元に公開されているオープンソースの言語です。MITライセンスのソフトウェアは無償で再配布、商用利用などが可能となっており、他のオープンソースライセンスに比べ制限が極めて緩いライセンスになります。

TOPに戻る

Juliaの関連技術

  • Python(NumPy, SciPy)
  • R言語
  • C言語
  • Fortran
  • Common Lisp
  • Scheme
  • MATLAB
  • Mathematica

TOPに戻る

Juliaの関連情報

Julia公式ページ
Juliaドキュメント
Julia日本語サイト
Juliaパッケージ
Juliaバイナリダウンロード
Juliaソースコード

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO