1. トップ
  2. データ分析
  3. 【入門編】プログラミング言語Juliaの特徴、メリット・デメリットを解説

【入門編】プログラミング言語Juliaの特徴、メリット・デメリットを解説

Julia」は、高速な計算ができるプログラミング言語です。機械学習に利用され、コードの読み書きがしやすいため、エンジニアからの注目を集めています。この記事では、Juliaの基礎知識とメリット・デメリット、基本的な使い方を解説します。

プログラミング言語Juliaとは?特徴とメリット・デメリット

Julia」とは、高度な計算や数値解析のできるスクリプト言語です。マサチューセッツ工科大学の研究者Jeff Bezansonらによって2009年に開発され、2012年にオープンソース化されました。

開発者は、Juliaについて、ほかの言語のいいところだけを組み合わせることを目指した言語だと述べています。
例えば、C言語の速さやR言語の統計の扱いやすさ、Perlの自然な文字列処理、Matlabの線形代数などについて言及しています。そして、完成したJuliaPythonの汎用性を保ちながら、便利さや速さを従来の言語と比較して大幅に改善し、使いやすい言語になりました。

Juliaの特徴は、機械学習に対応していることです。近年、医療やマーケティングなどさまざまな分野で機械学習が活用されています。このことも、Juliaが注目を集めている理由のひとつです。

また、Juliaはデータ解析に強い言語です。高度な数値解析ができるように設計されているため、複雑なデータ解析も可能です。またJulia言語は、just-in-time (JIT) コンパイラや型推論により速度が早く、C言語にも劣りません。

2020年83日に、最新版であるJulia1.5がリリースされました。Julia1.5には、以前のバージョンと比べて多くの改善点が見られます。
例えば、ヒープの割当削減やマルチスレッドAPI安定性の改善、モジュール最適レベルの改善などです。また、Julia1.5Pkgプロトコルが標準パッケージとして採用されています。

Julia言語のメリットとデメリットは?

ここでは、Julia言語のメリットとデメリットを解説します。

  • Julia言語のメリットとは?

Juliaのメリットは、おもに以下の3つです。

◎高速な動作

1つ目のメリットは、高速な動作です。C言語よりも計算パフォーマンスが高く、PythonR言語よりも桁違いに速いと言われています。また、ベクトル化されていないコードでも高速に動作させることが可能です。

◎シンプルな構文

2つ目は、シンプルな構文を実現できることです。例えば、下記のように、ループの範囲は“:”だけで表現できます。

<”や“>”などを使用せず、簡単に範囲が決められるため非常にシンプルです。また、if文では、条件を明記する際の”&”が不要です。

◎外部ライブラリとの連携

Julia言語は、外部ライブラリとの連携が可能です。Packageという外部モジュールを利用すれば、容易に拡張することができます。例えば、PyCall.jlを利用すれば、Pythonを呼び出すことも可能です。

Julia言語のデメリットとは?

Juliaのデメリットには、以下のようなものがあります。

◎認知度が低い

1つ目のデメリットは、認知度が低いことです。Julia言語は、現在、Pythonなどに比べて人気があるとはいえません。そのため、Pythonのほうがより多くの現場で採用され、外部への説明もしやすいでしょう。
ただし、Julia言語の認知度は、ますます上昇しています。今後、多くのプログラマーに浸透する可能性のある言語だといえます。

◎情報量が少ない

Julia言語は認知度が低いため、言語や技術についての情報も多くありません。知りたいことを調べても、日本語の資料がないという場合も考えられます。ただしこちらについても、今後は、Julia言語の認知度向上に伴って解決されると考えられます。

 

JuliaPythonの違いは?機械学習によく使われる2言語を比較

JuliaとPythonは、どちらも機械学習に使われる言語です。ここでは、両者の違いを比較します。

なお、Pythonについて、詳しくは「Pythonとは?何に使えるの?Pythonの特徴や使い道を詳しく解説!」をご覧ください。

また、機械学習に関して、詳しくは「【機械学習とは?】種類別に簡単にわかりやすく紹介!ディープラーニングとの違いやDQNについても解説!」をご覧ください。

JuliaとPythonのおもな違いは、以下の通りです。

Julia Python
実行速度 高速 やや遅い
ライブラリの種類 限定的 非常に豊富
外部連携

 

それぞれの違いについて詳しく解説します。

◎実行速度

実行速度は、PythonよりもJuliaのほうが圧倒的に速いです。Julia言語は、Pythonよりも30倍ほど速いとも言われており、非常に高速です。また、C言語と比較しても早く、処理速度はトップクラスになります。

◎ライブラリの種類

ライブラリの種類は、Pythonのほうが圧倒的に多いでしょう。例えば、PythonにはNumPyscikit-learnなどのライブラリがあり、多くのプログラマーに利用されています。一方、Juliaは画像を扱うJuliaImagesなど、いくつかのライブラリがありますが、種類は限定的です。

◎外部連携

外部連携のしやすさは、Juliaのほうが優れています。例えば、PyCallPyPlotを利用すれば、JuliaPythonコードを呼び出すことも可能です。そのため、Juliaは拡張性に優れた言語であるといえるでしょう。

 

Julia言語入門!インストールから基本の文法まで

ここからは、Juliaのインストールや使い方、基本の文法についてチュートリアル形式で解説していきます。

Julia言語の使い方インストール~開発環境

まずはインストール方法について解説します。

1.https://julialang.org/downloads/にアクセスしてください。

2.ご自身の環境に合ったものを選択し、最新バージョンをダウンロードしてください。今回のチュートリアルではMacOS 64-bitをダウンロードしました。

Juliaのダウンロード

3.ダウンロードが完了したら、ダウンロードフォルダーからjulia-1.5.3-mac64.dmgをダブルクリックします。

4.インストールが完了したら、Juliaをアプリケーションフォルダーにドラッグ・アンド・ドロップしてください。

ドラッグ・アンド・ドロップで展開

5.次に、Juliaのアプリケーションをダブルクリックします。警告ウィンドウが表示されますので、「開く」をクリックしてください。

開くをクリック

6.ターミナルが起動し、下記のように表示されたらインストール成功です。

Juliaのインストール成功画面

7.Juliaを起動するたびにコードを入力するのは不便であるため、PATHの設定をしましょう。※なお、設定しない場合は、ターミナルを起動し、下記のコマンドを入力すればJuliaを起動できます。

下記のコマンドを入力して設定ファイルを開きます。.zshrcが存在しない場合は、新規作成しましょう。

8.ファイルを開いたら、設定ファイルに以下を追記してください。

9.設定を反映させます。

10.コマンド上でjuliaと入力してください。下記の画像のように表示されたら成功です。

Julia言語の使い方②Hello, World!

JuliaでHello, World!を出力させましょう。

JuliaはREPLread-eval-print-loop)を採用しているプログラミング言語です。REPLは、対話をするように、キーボードで入力をすると即座にプログラム結果を返してくれるものです。

1.コマンドからJuliaを起動します。

2.下記のコードを入力してEnterを押してください。

3.下記の画像のようにHello, World!と出力されれば成功です。

Hello World!画面

Julia言語の使い方基本の文法

続いて、Juliaの基本文法を説明していきます。

1.まずは計算です。10×10の結果をaに代入します。

2.100と表示されたら成功です。

正しい結果画面

3.次は関数を使います。数値を足すaddition関数を作りましょう。下記のようにコードを入力してください。

4.下記の画像のように、addition (generic function with 1 method)と出力されれば成功です。

addition関数成功画面

5.作成したメソッドを使うときは、下記のように入力します。

6.下記の画像のように2と表示されれば成功です。

出力成功画面

5.続いては、コメントです。コメントは下記のように#で表現します。

また、行をまたぐ場合はコメントを”#=””=#”で囲います。

 

この記事では、Julia言語の基礎知識とメリット、使い方を解説しました。JuliaPythonよりも速度が早く、外部と連携することもできるプログラミング言語です。機械学習やAIなどに携わりたい方は、ぜひ参考にしてください。

 

AI・機械学習・データサイエンスを基礎から学ぶ

初心者向けの人工知能と機械学習

みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2020年最新版】
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習 【2020年最新版】

Pythonを使って、機械学習とプログラミングの基礎、必要な数学を勉強しましょう!

機械学習がよくわかる

【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -
【キカガク流】人工知能・機械学習 脱ブラックボックス講座 - 初級編 -

機械学習の考え方、微分、単回帰分析まで一気通貫で解説します。

データサイエンスを深堀り

【世界で34万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
【世界で34万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜

データサイエンティストになるために必要な一連のツールについて学べる!

ディープラーニングを理解!

【Hands Onで学ぶ】PyTorchによる深層学習入門
【Hands Onで学ぶ】PyTorchによる深層学習入門

機械学習・深層学習の復習やPyTorchのライブラリの基本的な使い方など基礎的な内容から段階的にステップアップ