世界を動かす技術を、日本語で。

Mojo 1.0 ベータ版

2026年5月8日原文(mojolang.org)

概要

  • Mojo は現代的なプログラミング言語の特長を融合した新言語
  • AIネイティブ設計 で多様なハードウェアに高性能対応
  • Pythonとの相互運用性 を持ち、既存コードの高速化が容易
  • GPUプログラミングやメタプログラミング が直感的に可能
  • オープンソース化のロードマップ と開発コミュニティの紹介

Mojoの特徴

  • 現代的な設計思想

    • Pythonの直感的な構文、Rustのメモリ安全性、Zigの強力なコンパイル時メタプログラミングから着想
    • シンプルで分かりやすい言語仕様
  • AIネイティブ

    • 多様なAIハードウェア上で最高のパフォーマンスを発揮
    • 静的型付け・コンパイル型設計によるエージェント型プログラミング適正
  • 生産性と性能の両立

    • シンプルなパターンから始め、必要に応じて複雑さを追加可能
    • パフォーマンスと開発効率の両立を実現
  • GPUプログラミングの簡易化

    • ベンダー依存や別コンパイル不要で、CPUと同じ言語で高性能GPUカーネルを記述
    • 例: TileTensorを用いたベクトル加算の定義
  • Pythonとの相互運用性

    • 既存のPythonコードのボトルネック部分のみMojoで高速化
    • MojoコードをPythonから自然にインポート・パッケージ化
    • PythonエコシステムのライブラリもMojo側で利用可能
    • 例: SIMDベクトル化カーネルによる配列要素のインプレース二乗処理
  • コンパイル時メタプログラミング

    • 実行時と同じ構文でメタプログラミングが可能
    • 条件付きコンパイルやメモリ安全性の保証、ランタイム分岐の排除など
    • 例: コンパイル時リフレクションによる汎用構造体の等価比較

開発ロードマップ

  • Phase 0: 初期立ち上げ

    • コアパーサー、メモリ型、関数、構造体、イニシャライザ、引数規約など言語基盤の実装
  • Phase 1: 高性能CPU+GPU対応(進行中)

    • CPU、GPU、ASIC向け高性能カーネル記述とPython拡張性の強化
  • Phase 2: システムアプリケーションプログラミング

    • メモリ安全性保証モデルや抽象化機能の拡充
  • Phase 3: 動的オブジェクト指向プログラミング

    • Python互換性最大化のため、クラス・継承・非型付き変数など動的機能をサポート

オープンソースとコミュニティ

  • Mojo標準ライブラリ はGitHubで完全オープンソース
  • Mojoコンパイラー は2026年にオープンソース化予定
  • 言語の若さゆえ、当面は少数精鋭による開発体制を維持
  • 開発コミュニティ への参加を歓迎
    • 興味があれば公式コミュニティに参加可能

学習・参加方法

  • Mojoの学習 リソース提供
  • 開発コミュニティ への参加案内

Hackerたちの意見

最初にMojoのことを聞いたとき、既存のPythonコードと互換性を持たせるつもりだと思ってたんだけど、どうやら今のところはかなり遠いみたい。PythonとMojoの間で行き来はできるみたいだけど、Mojo自体は既存のPythonコードを実行できないみたいだね。

Pythonの良いところって、結局エコシステムだけだよね。

彼らの最初の提案では、Pythonコードを取り込んで型ヒントを追加して、大幅に速度アップするっていうのが確かにあった。でも、実際に開発が進むにつれて、方向性がずれていったみたいだね。

コミュニケーションの中で、当然動くと思ってすごくシンプルなPythonコードを実行しようとしたんだけど、全然動かなかった。これにはかなりがっかりしたし、他の開発者たちにもどれだけ逆効果になってるのか気になるな。

それが元々宣伝されてたことだったんだ。KotlinがJavaに対してそうだったように、Pythonに対してもそうなりたかったんだよね。でも、すぐに手のひらを返した感じ。完全にオープンソースじゃない開発モデルも、ずっと怪しい感じがしてる。

サイトから: Pythonとの相互運用性 > MojoはPythonとネイティブに相互運用できるから、既存のコードを全部書き直さなくてもパフォーマンスのボトルネックを解消できるよ。最初は1つの関数から始めて、必要に応じてパフォーマンスが重要なコードをMojoに移行していけばいい。Mojoのコードは自然にPythonにインポートできて、配布用にパッケージ化もできるし、PythonエコシステムのライブラリをMojoコードにインポートすることもできるよ。

それってCodonで実現されてるんじゃないの?

確か、同等のPythonに対して36,000倍のスピードアップを宣伝してたけど、これは極端なケースでしか成り立たないってことを一切明言してなかった気がする。Pythonエコシステムを改善しようとする誠実な試みというより、むしろポンプ・ダンプの暗号通貨スキームみたいに感じる。

彼らは既存のPythonコードと互換性を持たせるつもりだった それが最初の主張だったけど、静かにウェブサイトから削除されたよね。(「Pythonはシンプルな言語」という一般的な誤解に引っかかったのかな?)今は「Pythonのように書ける」って約束してるけど、クラスのような基本的なものすらサポートしてない(それはロードマップのステージ3の一部だけど、まだステージ1に取り組んでる)。Mojoがすべての目標を達成するかもしれないけど、今のところは約束が大きくて実際はそれに届いてない感じで、V言語を思い出させるな。

よく見てたら、最初から次世代のシステム言語を作るつもりだったのは明らかだったよ。SwiftやRustからの教訓を活かして、CPU/GPU/異種ターゲットを狙って、MLIRを中心に構築していくって感じで。でも、最終的にはPythonを比較的簡単に埋め込んだり拡張したりすることも考えて作ってるみたい。Pythonの枠組みはお金を集めるのにほぼ確実に役立っただろうね。Chris LattnerはMLIRとMojoの関係について、PythonとMojoの関係よりも多く語ってたよ。

それはMojoがそう言ったからだよ。https://web.archive.org/web/20231221132631/https://docs.modu... > 私たちの長期的な目標は、MojoをPythonのスーパーセットにすること(つまり、既存のPythonプログラムと互換性を持たせること)です。Pythonプログラマーは、すぐにMojoを使えるようになり、今日利用可能な膨大なPythonパッケージのエコシステムにアクセスできるはずです。

MLに関わってる者として、パフォーマンスに興味があるから、Mojoが成功してほしいと思ってる。特にGPUとCPUのコードを同じ言語で混ぜられる可能性があるのは魅力的だよね。でも、彼らのやってる変更がPythonの開発者を遠ざけるんじゃないかと心配してる。前に起動したとき、基本的な文字列操作を試してみたんだけど、var x = 'hello'; print(x[3])が動かなくて、len(x)もダメだった。どうやら、バイトとコードポイントの表現をより具体的に選んだみたいだけど、ドキュメントと実際の実装が矛盾してたんだよね。もっと一般的なMLに向けてMojoが良い方向に進むことを願ってるけど、今のところはかなり制限がある感じ。実際、Tensors用の便利なビルトインがいくつか非推奨になってるし… しばらくはJAXを使い続けて、定期的に様子を見るつもり。うまくいくといいな。

Hacker Newsで議論の続きを見る