「Julia」は、高速な計算ができるプログラミング言語です。機械学習に利用され、コードの読み書きがしやすいため、エンジニアからの注目を集めています。この記事では、Juliaの基礎知識とメリット・デメリット、基本的な使い方を解説します。
公開日:2020年12月25日
プログラミング言語Juliaとは?特徴とメリット・デメリット
「Julia」とは、高度な計算や数値解析のできるスクリプト言語です。マサチューセッツ工科大学の研究者Jeff Bezansonらによって2009年に開発され、2012年にオープンソース化されました。
開発者は、Juliaについて、ほかの言語のいいところだけを組み合わせることを目指した言語だと述べています。
例えば、C言語の速さやR言語の統計の扱いやすさ、Perlの自然な文字列処理、Matlabの線形代数などについて言及しています。そして、完成したJuliaはPythonの汎用性を保ちながら、便利さや速さを従来の言語と比較して大幅に改善し、使いやすい言語になりました。
Juliaの特徴は、機械学習に対応していることです。近年、医療やマーケティングなどさまざまな分野で機械学習が活用されています。このことも、Juliaが注目を集めている理由のひとつです。
また、Juliaはデータ解析に強い言語です。高度な数値解析ができるように設計されているため、複雑なデータ解析も可能です。またJulia言語は、just-in-time (JIT) コンパイラや型推論により速度が早く、C言語にも劣りません。
2020年8月3日に、最新版であるJulia1.5がリリースされました。Julia1.5には、以前のバージョンと比べて多くの改善点が見られます。
例えば、ヒープの割当削減やマルチスレッドAPI安定性の改善、モジュール最適レベルの改善などです。また、Julia1.5はPkgプロトコルが標準パッケージとして採用されています。
Julia言語のメリットとデメリットは?
ここでは、Julia言語のメリットとデメリットを解説します。
- Julia言語のメリットとは?
Juliaのメリットは、おもに以下の3つです。
◎高速な動作
1つ目のメリットは、高速な動作です。C言語よりも計算パフォーマンスが高く、PythonやR言語よりも桁違いに速いと言われています。また、ベクトル化されていないコードでも高速に動作させることが可能です。
◎シンプルな構文
2つ目は、シンプルな構文を実現できることです。例えば、下記のように、ループの範囲は“:”だけで表現できます。
1 2 3 |
for I in 1:10 処理 end |
“<”や“>”などを使用せず、簡単に範囲が決められるため非常にシンプルです。また、if文では、条件を明記する際の”&”が不要です。
◎外部ライブラリとの連携
Julia言語は、外部ライブラリとの連携が可能です。Packageという外部モジュールを利用すれば、容易に拡張することができます。例えば、PyCall.jlを利用すれば、Pythonを呼び出すことも可能です。
Julia言語のデメリットとは?
Juliaのデメリットには、以下のようなものがあります。
◎認知度が低い
1つ目のデメリットは、認知度が低いことです。Julia言語は、現在、Pythonなどに比べて人気があるとはいえません。そのため、Pythonのほうがより多くの現場で採用され、外部への説明もしやすいでしょう。
ただし、Julia言語の認知度は、ますます上昇しています。今後、多くのプログラマーに浸透する可能性のある言語だといえます。
◎情報量が少ない
Julia言語は認知度が低いため、言語や技術についての情報も多くありません。知りたいことを調べても、日本語の資料がないという場合も考えられます。ただしこちらについても、今後は、Julia言語の認知度向上に伴って解決されると考えられます。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >JuliaとPythonの違いは?機械学習によく使われる2言語を比較
JuliaとPythonは、どちらも機械学習に使われる言語です。ここでは、両者の違いを比較します。
なお、Pythonについて、詳しくは「Pythonとは?何に使えるの?Pythonの特徴や使い道を詳しく解説!」をご覧ください。
また、機械学習に関して、詳しくは「【機械学習とは?】種類別に簡単にわかりやすく紹介!ディープラーニングとの違いやDQNについても解説!」をご覧ください。
JuliaとPythonのおもな違いは、以下の通りです。
Julia | Python | |
実行速度 | 高速 | やや遅い |
ライブラリの種類 | 限定的 | 非常に豊富 |
外部連携 | ◎ | △ |
それぞれの違いについて詳しく解説します。
◎実行速度
実行速度は、PythonよりもJuliaのほうが圧倒的に速いです。Julia言語は、Pythonよりも30倍ほど速いとも言われており、非常に高速です。また、C言語と比較しても早く、処理速度はトップクラスになります。
◎ライブラリの種類
ライブラリの種類は、Pythonのほうが圧倒的に多いでしょう。例えば、PythonにはNumPyやscikit-learnなどのライブラリがあり、多くのプログラマーに利用されています。一方、Juliaは画像を扱うJuliaImagesなど、いくつかのライブラリがありますが、種類は限定的です。
◎外部連携
外部連携のしやすさは、Juliaのほうが優れています。例えば、PyCallやPyPlotを利用すれば、JuliaにPythonコードを呼び出すことも可能です。そのため、Juliaは拡張性に優れた言語であるといえるでしょう。
Julia言語入門!インストールから基本の文法まで
ここからは、Juliaのインストールや使い方、基本の文法についてチュートリアル形式で解説していきます。
Julia言語の使い方①インストール~開発環境
まずはインストール方法について解説します。
1.https://julialang.org/downloads/にアクセスしてください。
2.ご自身の環境に合ったものを選択し、最新バージョンをダウンロードしてください。今回のチュートリアルではMacOS 64-bitをダウンロードしました。
3.ダウンロードが完了したら、ダウンロードフォルダーからjulia-1.5.3-mac64.dmgをダブルクリックします。
4.インストールが完了したら、Juliaをアプリケーションフォルダーにドラッグ・アンド・ドロップしてください。
5.次に、Juliaのアプリケーションをダブルクリックします。警告ウィンドウが表示されますので、「開く」をクリックしてください。
6.ターミナルが起動し、下記のように表示されたらインストール成功です。
7.Juliaを起動するたびにコードを入力するのは不便であるため、PATHの設定をしましょう。※なお、設定しない場合は、ターミナルを起動し、下記のコマンドを入力すればJuliaを起動できます。
1 |
$ /Applications/Julia-1.5.app/Contents/Resources/julia/bin/julia |
下記のコマンドを入力して設定ファイルを開きます。.zshrcが存在しない場合は、新規作成しましょう。
1 |
$ vi ~/.zshrc |
8.ファイルを開いたら、設定ファイルに以下を追記してください。
1 |
export PATH=/Applications/Julia-1.5.app/Contents/Resources/julia/bin:$PATH |
9.設定を反映させます。
1 |
source ~/.zshrc |
10.コマンド上でjuliaと入力してください。下記の画像のように表示されたら成功です。
Julia言語の使い方②Hello, World!
JuliaでHello, World!を出力させましょう。
JuliaはREPL(read-eval-print-loop)を採用しているプログラミング言語です。REPLは、対話をするように、キーボードで入力をすると即座にプログラム結果を返してくれるものです。
1.コマンドからJuliaを起動します。
1 |
$ Julia |
2.下記のコードを入力してEnterを押してください。
1 |
println("Hello, World!") |
3.下記の画像のようにHello, World!と出力されれば成功です。
Julia言語の使い方③基本の文法
続いて、Juliaの基本文法を説明していきます。
1.まずは計算です。10×10の結果をaに代入します。
1 |
julia> a = 10*10 |
2.100と表示されたら成功です。
3.次は関数を使います。数値を足すaddition関数を作りましょう。下記のようにコードを入力してください。
1 2 3 |
function addition(x, y) x + y end |
4.下記の画像のように、addition (generic function with 1 method)と出力されれば成功です。
5.作成したメソッドを使うときは、下記のように入力します。
1 |
julia> addition(1,1) |
6.下記の画像のように2と表示されれば成功です。
5.続いては、コメントです。コメントは下記のように#で表現します。
1 |
julia> num = 1 #距離 |
また、行をまたぐ場合はコメントを”#=”と”=#”で囲います。
1 2 3 4 5 6 7 |
#= XとYを足す関数 関数名はadditon =# function addition(x, y) x + y end |
この記事では、Julia言語の基礎知識とメリット、使い方を解説しました。JuliaはPythonよりも速度が早く、外部と連携することもできるプログラミング言語です。機械学習やAIなどに携わりたい方は、ぜひ参考にしてください。
はじめましてJulia~次世代のデータサイエンス・科学計算のためのプログラミング
Pythonはもう古い!?機械学習も科学計算もこれからはJuliaの時代だ。ようこそJuliaへ!
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
Juliaを網羅的に学ぶことができました。日本語でJuliaを解説したものが少ないので助かります。
最新情報・キャンペーン情報発信中