【モジョ】

Mojo(モジョ) とは?

最終更新:
💡 Pythonに似た書き方で、処理の中身まで工夫できる言語

Pythonに似た書き方と、機械語へのコンパイルや型・メモリの制御を組み合わせたプログラミング言語。Pythonのライブラリを呼び出す連携機能もある。

📌 このページのポイント
似た書き方、違う実行の仕組みPythonのライブラリCPythonで実行連携機能で呼び出せるPython環境も必要Mojoで書く処理機械語にコンパイル型・メモリを制御CPU / GPUを活用連携で呼び出す一緒に使える。速さは処理と実装次第見た目が似ていても、別の言語だよ
Mojoの処理と、連携で呼び出すPython側の処理。Python側はCPythonで動きます。
ひよこ ひよこ
Mojoって、速いPythonなの?
ペンギン先生 ペンギン先生
Pythonに似た書き方をするけれど、別のプログラミング言語だよ。型をコンパイラが使う仕組みや、値をコピー・共有するルールなどが違うんだ。「Pythonのコードを何でもそのまま置き換えられる」とは考えないほうがいいよ
ひよこ ひよこ
どんな工夫で速くできるの?
ペンギン先生 ペンギン先生
実行前にコードを機械語へコンパイルし、型やメモリの使い方を制御できるよ。計算を並列に行うなど、処理に合った実装もできる。ただし「書くだけでCと同じ速さ」「何千倍になる」という保証はないんだ。実際の処理と環境で測る必要があるよ
ひよこ ひよこ
今使っているPythonのライブラリはどうなる?
ペンギン先生 ペンギン先生
Python.import_module()という連携機能で、NumPyなどのPythonモジュールを呼び出せるよ。そのPythonコードは通常のCPythonで動くので、インポートしただけでMojoの機械語に変わるわけではないんだ。実行環境にはPython本体と使うパッケージも必要だよ
ひよこ ひよこ
GPUでも使えるの?
ペンギン先生 ペンギン先生
CPUやGPU向けのコード生成に対応していて、GPUを活用する処理にも使えるよ。ただし使えるOS・GPU・機能やビルド方法を、使用するバージョンの公式資料で確認する必要がある。「どのアクセラレータでもそのまま動く」という意味ではないよ
ひよこ ひよこ
試すなら、全部書き換えたほうがいい?
ペンギン先生 ペンギン先生
まずは小さな処理で、必要なライブラリとの連携、結果の正しさ、実行速度を確かめるといいよ。遅い場所を測ってから、その部分をMojoで実装する選択肢を考えよう。開発ツールや配布先の環境まで確認すれば、見た目の似ているところだけで判断せずに済むね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Mojo」って出てきたら「Pythonに似た書き方で、処理の速さやメモリの使い方を工夫できる言語」と思えばだいたいOK!
📖 おまけ:英語の意味
「Mojo」 = プログラミング言語の名前
💬 Pythonに似た見た目から入りつつ、型やメモリを明示的に扱える言語だよ。Pythonそのものとは区別して覚えよう

参考資料

← 用語集にもどる