Juliaとは?
Juliaは機械学習やデータサイエンスに強い、新しいプログラミング言語です。
JuliaはPythonと同様に、統計処理、機械学習(ディープラーニング含む)、科学技術計算、ビジュアル描画などを行えます。またLLVMというコンパイラ基盤を用いてコンパイルすることで、Pythonなどのインタプリタ言語と比べて実行速度が高速なのが特徴です。
この記事では、Juliaとはどんな言語か、Pythonとの比較、その将来性などを解説していきます。
【参考】:The Julia Programming Language
Juliaの概要
Julia(ジュリア)は、汎用プログラミング言語としての機能を持ち、高度な科学技術計算や数値解析まで対応しています。
Juliaは2009年から米国のマサチューセッツ工科大学(通称MIT)の開発者により開発が始まり、2012年2月にオープンソースのプログラミング言語として発表されました。
Juliaは先行するPythonやMATLAB、R言語など機械学習や数値計算に強いプログラミング言語の影響を受けており、それらのいいとこ取りをし、さらにC言語の良さを加えた言語と言われています。
Juliaの特徴
Juliaの特徴としては、機械学習や科学技術計算との相性がよく、データ解析にも強いという点にあります。
また、Juliaは記述が自然言語に近いスクリプト言語であり、シンプルな文法で覚えやすい、学びやすいという特徴もありますが、さらには処理が遅いインタプリタ言語の弱点を克服し、コンパイラ言語並みの処理速度の速さを実現している点も特徴です。
Juliaの言語ランキング
Juliaの人気度はどの程度なのでしょうか?プログラミング言語の人気ランキングを発表しているTIOBE※によると、Juliaは25位にランクインしています。まだ知名度は低いですが、リリースから10年で25位というのは、人気が高い言語であるといえます。
【参考】:※TIOBE Index for May 2022
Juliaのメリット
Juliaは人気のPythonとほぼ同様の機能を有していますが、Juliaの強み(メリット)が何であるのかについて、以下にまとめてみました。
処理が高速
Juilaの特徴的なメリットとしては、高速性にあります。Juliaの開発者たちはブログ※で次のように述べています。「我々が必要な言語はこんな感じだ。ゆるいライセンスのオープンソースで、Cの実行速度とRubyの動的さがあることだ…。」
Juliaは実行時の速度を速めるために、LLVM※1というコンパイラ基盤のフレームワークを用いてJITコンパイル※2を行います。そのため、コンパイル言語であるC言語並みの処理速度を出せるのです。
【参考】:※Why We Created Julia
【参考】:※1The LLVM Compiler Infrastructure
【参考】:※2JITコンパイラ|weblio辞書
構文がシンプルで型宣言が不要
Juliaはシンプルな構文であり、型宣言が不要な動的型付け(あらかじめデータ型を決めずに定義する)プログラミング言語であるため、プログラミングの自由度が高く、プログラミングがしやすい点が2つ目のメリットです。
外部ライブラリと連携できる
Juliaは外部ライブラリと連携できる点が3つめのメリットです。Packageという外部モジュールを利用することでC言語やFortranで作られた外部ライブラリを使えます。
また、「PyCall.ji」ライブラリを使い、Pythonコードを呼び出したり、PythonとJuliaでデータ共有を行ったりすることも可能です。このように外部ライブラリと容易に連携できる点がJuliaの3つ目のメリットです。
将来性が期待できる
JuliaはPythonの競合プログラミング言語として開発され、Pythonの弱点である実行速度の遅さを克服しています。AIやデータサイエンス分野では圧倒的な人気とシェアを誇るPythonですが、今後は速度や効率性をより求めるプロジェクトではJuilaが優勢になっていく可能性があります。
このJuliaの将来性が期待できる点がメリットの4つ目です。
Juliaのデメリット
ライバルであるC言語、Python、Ruby、MATLABのいいとこ取りをしたとするJuliaですが、欠点やデメリットもあります。ここではJuliaのデメリットについて見てみましょう。
知名度が低い
人気ランキングなどを見ても分かるように現段階では、Juliaの知名度、人気度はさほど高くはありません。そのため、PythonよりもJuliaが適した分野でも、Pythonによる開発が進められることがあります。実際にPythonエンジニアに対する求人は豊富にありますが、Juliaエンジニアの求人は少ないのが実情です。
しかし、先行する米国の状況を見ると、Juliaに対する認知度は日本でも次第に上がってくると予想されます。今後、多くのプログラマーが習得に努める言語の1つになる可能性があります。
【参考】:公開求人検索|マイナビAGENT
Juliaに関する情報が限られる
Juliaは認知度がまだ低いことから、Juliaに関する情報が多くはありません。Juliaのプログラミングで分からないことがあっても、日本語での資料が少なく、調べるのに時間を要するでしょう。ただし、こうした状況もJuliaの認知度が上がるにつれて解消されることでしょう。
ライブラリがまだ少ない
Juliaは新しい言語であること、まだ認知度が高くはないことから、Pythonなどと比べて使えるライブラリがまだ多くはありません。しかし、JuliaにはPythonやC言語との外部連携ができるため、ライブラリ不足で困ることは少ないでしょう。
後発であるためアップデートが多発する可能性
Juliaは後発で発展途上の言語のため、登場して間もないフレームワークを中心に、アップデートが多発したり、仕様が大きく変わる可能性を否定できません。勉強で利用する場合は特に心配は要りませんが、開発言語として利用する場合には慎重に進める必要があります。
JuliaとPythonの比較
Pythonのライバルと目されるJuliaですが、JuliaはPythonとは何が違うのかについて見ていきましょう。
JuliaとPython
JuliaとPytonの違いを明らかにするために、以下に比較表を作成してみました。Pythonと比較してJuliaが勝っているのは、「処理速度」と「外部連携」の2つですが、逆にJuliaがPythonの後塵を拝しているのは「ライブラリの種類」と「求人数」です。
「ライブラリの種類」に関して、Juliaは外部連携機能によって他言語のライブラリを利用できるため、解消される弱点です。また求人数の少なさは認知度の問題であり、今後は徐々に解消していくと考えられます。
Julia Python
学びやすさ: 〇 ◯
処理速度: ◯ △
ライブラリの種類: ✕ ◯
外部連携: ◯ △
求人数: ✕ ◯
コミュニティ: △ ◯
【参考】:Python 公式サイト
【参考】:公開求人検索|マイナビAHENT
Juliaの勉強法
ここまで、Juliaの概要、Juliaのメリット・デメリット、JuliaとPythonの違いなどについて解説しましたが、ここではJuliaの勉強法を中心に解説します。
Juliaの認定資格
歴史の浅いJuliaには認定資格制度がありません。そこで、参考書などで自己学習を行い、実際にプログラム開発を経験することでスキルアップを図っていくのがJuliaエンジニアになる早道と考えられます。
おすすめの参考書
Juliaはまだ日本ではあまり知られていない言語であり、解説本や参考書は少ない状態にありますが、そんな中から入門者におすすめの本を2冊紹介します。
■ 1から始める Juliaプログラミング
Juliaのインストール方法、基本的な文法、使い方や、実践的な内容、標準ライブラリに含まれていない数値計算・データ可視化パッケージの活用までを網羅的に解説しています。Juliaに興味を持ち、初めてJuliaに触れるプログラミング学習者や科学技術計算を手軽に高速で行ってみたい学生や研究者が対象です。
▪著者:進藤 裕之、佐藤 建太 ▪ページ数:206ページ ▪出版社:コロナ社 ▪発売日:2020年3月26日
【参考】:1から始める Juliaプログラミング
■ Juliaプログラミングクックブック
Julia初学者向けの解説書で、Juliaの良さを学べる一冊です。Juliaの言語仕様、データ分析、機械学習や数値計算まで、約90のレシピで広範囲のトピックをカバーしたクックブックです。
Juliaは数値計算や科学技術計算を得意とし、Cのように高速で、Python並みに書きやすく、高機能かつ近代的なオープンソース言語という目標をもとに開発されました。先に前述の「1から始める Juliaプログラミング」を読んでおくと理解が早いでしょう。
▪著者:Bogumił Kamiński、Przemysław Szufel(中田 秀基 訳) ▪ページ数:392ページ ▪出版社:オライリー・ジャパン ▪発売日:2019年10月
【参考】:Juliaプログラミングクックブック
今後Juliaとどう付き合うか
ここまで新しいプログラミング言語、Juliaについて解説しました。Juliaは機械学習や科学技術計算に強いプログラミング言語で、シンプルな構文と実行速度の速さなどが特徴でした。ただ、残念なことに日本ではまだ認知度は高くはなく、Juliaをメインとした求人が少ない状態です。
とはいえ、米国ではJuliaは人気が上昇しています。日本でもJuliaはブレイクする可能性があり、早めに習得をしておくと、先駆者的なメリットが得られるかもしれません。
機械学習エンジニア、データサイエンティストを目指す方は学んでおいて損はありませんので、Julia関係の求人数の動向を注視しながら、ぜひ積極的にチャレンジしてみてください。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから