BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Mojoプログラミング言語の紹介

Mojoプログラミング言語の紹介

原文リンク(2023-07-19)

Mojoは、PythonのシンプルさとRustのスピードとメモリの安全性を組み合わせた、新しく発表されたプログラミング言語である。開発の初期段階にあり、その機能を探求するためのオンラインプレイグラウンドをユーザーに提供している。Mojoはデータサイエンスと機械学習における卓越性を目指しており、Pythonに代わる高速な言語を提供する。オープンソース化も徐々に計画されている。

クリス・ラトナー氏によって作られたMojoは、AIプログラマーにプログラマビリティと拡張性を提供し、AIハードウェア上での効率的なプログラミングを可能にする。MojoはPythonの35000倍(PyPyは22倍、Scalar C++は5000倍)という大幅な高速化を実現している。これは、MLIR(Multi-Level Intermediate Representation:マルチレベル中間表現)を使用することで、複雑さをもたらすことなくハードウェアの種類をシームレスに拡張することで実現されている。Mojoは、LLVMツールチェーンを使用してマシンコードにコンパイルされ、Mojo固有の機能を使用することでより優れたパフォーマンスを提供する。一方、Pythonは実行時の解釈に依存している。

Mojoは、2つのグループに分類できる新しい言語機能を導入している。Pythonにまったく新しく存在しない要素と、既存のPythonの機能のダイナミクスを減らしたものだ。例えば、Mojoではletvarといったキーワードを使って変数を宣言し、それが不変か可変かを示す。これらの制限はコンパイル時に適用され、不変参照を変更しようとする試みを防ぐ。

さらに、MojoはPythonのclassとは異なるstructキーワードを使って、C/C++やRustに相当するような、ネイティブ・マシンの速度に最適化された固定配置の型を定義する。Mojoのもう一つの特徴的なキーワードはfnで、関数を定義するのに使われる。Mojoの関数はデフォルトで不変引数をとり、明示的な型指定とローカル変数の宣言が必要である。これらの言語機能は、Pythonと比較してMojoのユニークな特徴に寄与している。

Mojoでの作業を体験するために、ユーザーはウェブベースのJupyter Notebook環境であるModular Playgroundに早期アクセスできる。Mojoにはまだダウンロード可能な実行環境はないが、これによってMojoはブラウザがあればどのコンピュータでも実行できる。この環境では、詳細なノート付きのサンプルノートブックが提供されている。

コミュニティは言語開発に興味を持っている。肯定的な意見もある。ツイッターでは、ジェレミー・ハワード氏が自身の見解を語っている。

Mojoアプリは、小さく、スタンドアロンで、起動の速いバイナリにコンパイルできる。これは画期的なことだ!小さな高速ツールを素早く簡単に作成し、1つのファイルで配布できれば、どんなことができるか考えてみてほしい。

クリス・ラトナー氏は、レックス・フリードマン氏のポッドキャストで、Mojoを作った背景には、機械学習とそのインフラを、専門家でない人にももっと身近でわかりやすいものにするという考えがあると語った。これにより、ユーザーフレンドリーな構文を持つプログラミング言語が開発され、研究者やGPSのような高度な技術に不慣れな人でも機械学習を効果的に利用できるようになった。

作者について

この記事に星をつける

おすすめ度
スタイル

BT