MIT発の研究プロジェクトが、世界で100万人以上に使われるプログラミング言語「Julia」に成長するまで

How an MIT research project became a global programming language

MIT発の研究プロジェクトが、世界で100万人以上に使われるプログラミング言語「Julia」に成長するまで

2009年の frustration から始まったMITの研究プロジェクトは、科学者やエンジニア向けの高性能プログラミング言語「Julia」を生み出した。PythonやMATLABのように簡単で、C言語のように高速な言語を目指し、2012年に公開。現在は100万人以上のユーザーを持ち、航空機衝突回避プログラムをPython版より50倍高速化するなど、様々な分野で活用されている。さらに、JuliaHubはAIプラットフォーム「Dyad 3.0」を発表し、物理法則を考慮した自律設計で、設計時間を桁違いに短縮することを目指している。

「研究者たちが私に言うんです。『上司には速度のためにJuliaを使っていると言っているけど、本当に楽しいから使っているとは言っていないんです』と」
  1. eigenspace

    Juliaは本当に素晴らしい言語で、私がプログラミングを好きになり、楽しむようになったきっかけです。Lispから最も多くの教訓を取り入れた現代言語であり、独自の素晴らしいアイデアも生み出しています。

    好きな点はたくさんありますが、私が最も愛し、興味深いと感じるのは、コードを取り出してその意味を様々な方法で変換することにほぼ独自に優れており、そのためのツールが非常に多いことです。例えば、

    * 多重ディスパッチにより、柔軟なジェネリックコードの記述が可能で、しかもそれは後付けのオプトイン機能ではありません。言語内のすべての関数がオーバーロード可能で、多重ディスパッチを使用してもパフォーマンスの低下はありません。

    * パラメトリック型付けにより、一般的な「基本」型に対する高度な抽象化が可能です。

    * Lisp風マクロにより、構文の意味を変えるメタプログラミングが可能です。

    * 生成関数により、コンパイル時に介入し、コンパイルパイプラインを実質的に掌握して、任意の入力型シグネチャに対するコード生成をカスタマイズできます。

    * 抽象インタプリタインターフェースにより、コンパイラを掌握し、コード生成と解析パスを思いのままにカスタマイズできます。これは例えば、GPUサポートや自動微分をパッケージとして提供するために利用されています。

  2. cmontella

    興味があれば、週末にJuliaを他のいくつかの言語とベンチマーク比較しました。ワークロードはApple M1上のEKFで、できるだけ並列化しようとしています:

    https://raw.githubusercontent.com/mech-lang/mech/codex/taich...

    Taichi、Halide、Futhark、Rust'、Lua、LuaJIT、Numpy、純粋なスカラーPythonと比較しました。Juliaは素晴らしい結果で、基本的に好きなだけ高速に実行できます!(これらは厳密な比較ではなく、果物の盛り合わせと考えてください)

    'Mechの結果は、Rustのパフォーマンスの下限と理解すべきです。

  3. prof-dr-ir

    数値計算を行い、教育的理由やアルゴリズムをいじりたいために、パフォーマンスをあまり犠牲にせずに内側のループを明示的に書きたい場合、Juliaは素晴らしいです。

    空のファイルから始めて、LinearAlgebraのインポートを追加し、畳み込みニューラルネットワークやマルコフ連鎖モンテカルロアルゴリズムをゼロから開発するのはとても楽しいです。そして、そのようなプログラムがMNISTデータセットのトレーニングや臨界指数の妥当な推定に十分な速度で動作することは非常にやりがいがあります(Pythonと比較して)。

    これらの種類のことにJuliaより適した言語があるかどうかはわかりません。

  4. maxall4

    私は本当にJuliaを好きになりたいと思っています。素晴らしい型システム、良いエコシステム、合理的な構文、そしてPythonよりもはるかに高速です。しかし、DXにはいくつかの問題があり、使用を妨げています。最も深刻なのは、JIT(またはJITのようなシステム)のキャッシュが完全に欠如していることで、<100msで実行されるスクリプトでも数秒のコンパイル時間が発生します。この問題を解決しようとする外部パッケージもありますが、ファーストパーティの品質にはほど遠く、私の経験ではかなりバグが多いです。

    (最後にJuliaを試したのは数年前です。もしかしたら改善されているかもしれません?)

  5. myrmidon

    Juliaは本当に楽しく使えます。そして、型システムに関しては彼らは何かをつかんでいると思います。複雑な型は、他のほとんどの言語よりもモジュール境界を越えてはるかによく相互作用します。作成者の1人による良い講演があります:

    https://www.youtube.com/watch?v=kc9HwsxE1OY

    私の見解では、この言語の最大の欠点は、Juliaが「インタプリタ言語を装った」LLVMツールチェーンであることです(技術的にはそうですが)、これはしばしば非常に遅い初回実行レイテンシとして漏れ出し、編集しているファイルに対して単に呼び出すのではなく、インタプリタを開いたままにすることをほぼ強制します。

  6. drhagen

    MITの大学院生だったとき、私の机はJulia開発者の人たちの部屋の向かい側にありました。昼食のテーブルも共有していました。Juliaは最適化コンパイラで最も有名ですが、多くの人は言語自体の設計に注がれた細心の注意に気づかないかもしれません。Matlabとは違いました!ある長い会話で、彼らの一人がUnicodeの正規化のさまざまなタイプについて教えてくれたのを覚えています。彼らはUnicode変数名を正規化するために1つを選ばなければならず(数学的なプログラミング言語にはより有用)、その選択の結果を注意深く検討していました。

  7. ashton314

    Juliaは、関数型の方法で推論できる高速な言語が必要なときの私の頼みの綱です。型システムは十分で、パターンマッチングはかなり良く、メタプログラミングの話はもっと良くなる可能性がありますが、悪くはありません。そして、とにかく高速です。めちゃくちゃ高速です。

  8. radiator

    「Why I no longer recommend Julia」という記事の正しさに関する批判は今でも有効だと思いますか?*エコシステム全体に正しさと合成可能性に関するバグが多すぎて、正しさが重要となるほとんどあらゆる状況で使用する正当性がありません*

    https://yuri.is/not-julia/

この日のほかの記事

2026-09-04