7月24日、海外メディアTheNextWebが「[Julia が Pythonを打ち負かし、プログラミング言語の覇権を取れる理由(How Julia could beat Python for programming language dominance)(https://thenextweb.com/news/julia-beat-python-programming-language-dominance)]」と題した記事を公開した。
Pythonはそのクリーンで親しみやすい構文、読みやすさ、初心者にも学びやすい点でプログラミング界で非常に人気がある。しかし、ユーザーからの最も一般的な不満は、Pythonが遅いという点である。C++、Java、C#、そしてJuliaよりも遅い。
Juliaは2012年にJeff Bezanson、Stefan Karpinski、Viral B. Shah、Alan Edelmanによって、速くて高レベルなオープンソースのプログラミング言語として考案された。PythonやRのように使いやすく、CやFortranのように速く、プロトタイピングと本番環境の両方に使用できる。
Julia言語の紹介とサンプルコード
Juliaは高パフォーマンスを誇るプログラミング言語であり、数値計算やデータ分析に特化している。簡潔で直感的な構文を持ち、学習コストが低いのが特徴である。以下に、Juliaで「Hello, World」を出力する基本的なサンプルプログラムを紹介する。
# Hello, Worldプログラム
println("Hello, World!")
このプログラムは、println
関数を使用してコンソールに「Hello, World!」と表示する。Juliaのコードはシンプルで読みやすく、Pythonに似た直感的な構文を持っているため、初心者にも学びやすい。
PythonとJuliaでの機械学習の比較
次に、PythonとJuliaで最小限の機械学習コードを比較する。ここでは、シンプルな線形回帰モデルを例にする。
Pythonでの実装
以下は、Pythonを使用して線形回帰を実装する最小限のコードである。使用するライブラリはscikit-learnである。
from sklearn.linear_model import LinearRegression
import numpy as np
# データセットの作成
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([1, 3, 2, 3, 5])
# モデルの作成と訓練
model = LinearRegression()
model.fit(X, y)
# 予測
predictions = model.predict(np.array([[6]]))
print(predictions)
このコードは、単純なデータセットを作成し、線形回帰モデルを訓練して、予測を行うものである。
Juliaでの実装
同じ線形回帰モデルをJuliaで実装するためには、以下のように書くことができる。使用するライブラリはGLM.jlである。
using GLM
using DataFrames
# データセットの作成
X = DataFrame(x1 = [1, 2, 3, 4, 5])
y = [1, 3, 2, 3, 5]
# モデルの作成と訓練
model = lm(@formula(y ~ x1), X)
# 予測
new_data = DataFrame(x1 = [6])
predictions = predict(model, new_data)
println(predictions)
このコードは、Pythonのものと同様に、データセットを作成し、線形回帰モデルを訓練して、予測を行うものである。Juliaのコードは直感的で、データフレームを使用することで、データの取り扱いが非常に簡単である。
Juliaの利点
Juliaのコミュニティとエコシステムは、最初の10年間で大幅に成長し、現在では1180万行以上のコードが存在する。最新バージョンの1.10.4(2024年6月4日に更新)には、パッケージの読み込み時間の改善、エラーメッセージの改善、スタックトレースのレンダリングの向上など、いくつかの新機能が追加されている。
JuliaのシンタックスはPythonに似ており、探索的プログラミングやデータ分析に広く使用できる。また、高レベル言語に精通している人にとって非常にアクセスしやすい。多重ディスパッチをコア機能として使用するため、データサイエンス、機械学習、人工知能、科学研究、金融モデリングなどに非常に柔軟に使用できる。
機械学習への新しいアプローチ
OpenAIのChatGPTは、大量のデータセットを処理するアルゴリズムを使用しているが、Juliaは科学的機械学習に使用され、アルゴリズムに科学的知識を供給して複雑な科学方程式を解決する。この言語は複雑な定数の価値を定量化し、機械学習を実際の応用により密接に結びつけることができる。
物流およびドローン配送会社のZiplineは、医薬品の配送効率を向上させるために最適な飛行経路を見つけるためにJuliaを使用している。大手製薬会社のアストラゼネカやファイザーも、新しい治療法のシミュレーションを加速させるためにJuliaを使用している。Julia Computingのクラウドベースプラットフォームは、F1のウィリアムズ・レーシングによって、モデリングとシミュレーションソフトウェアを強化し、スピードを向上させるために採用されている。
コミュニティへの参加
Juliaはオープンソース言語であり、一つの企業やオペレーティングシステムに依存していない。その結果、ソフトウェアは自由に利用でき、Juliaの開発者コミュニティは活発であり、バグの修正に取り組んでいる。すべてのコミュニティフォーラムはJuliaLangのウェブサイトで見つけることができる。
Juliaを学ぶ際、他のプログラミング言語に精通しているほど有利であるが、MITやTUベルリンなどの大学や、DataCamp、Coursera、Udemyなどのオンライン学習プラットフォームでもオンラインコースを提供している。
詳細はHow Julia could beat Python for programming language dominanceを参照していただきたい。