Modularは2026年8月11日、プログラミング言語「Mojo」の正式版となるv1.0.0を公開した。Pythonに近い書き味とシステム言語の制御性を組み合わせ、CPU、GPU、ASICなど異なる計算資源を一つの言語で扱う構想が、互換性を約束できる段階へ進んだ。ただし、1.0という番号は言語環境の全面完成を意味しない。安定保証は明示されたAPIに限られ、ABIやツールチェーン、コンパイラのオープンソース化には宿題が残る。

AD

安定版1.0が固定したもの

Mojo 1.0が開発者にもたらす最大の変化は、新しい構文の数ではなく、壊れにくさを判断する基準ができたことだ。言語機能と標準ライブラリのうち「stable」と明示されたAPIはセマンティックバージョニングに従う。安定対象に依存するコードは、同じメジャー版の更新でソース互換性を維持するという約束である。

最初から標準ライブラリ全体が固定されたわけではない。全面的に安定したtraitはDeinitableMovableCopyableImplicitlyCopyableで、ArrayListSpanStringBoolOptionalは一部のAPIから安定化が始まった。APIリファレンスで安定表示のない機能は今後も変更され得る。

保証されるのはソースコードの互換性であり、MojoのABIはまだ安定していない。安定性ポリシーの文書そのものも暫定版とされ、重大な問題が見つかった場合には例外があり得る。長期運用を考えるチームは、mojo==1.0.0への更新に加え、利用するAPIごとの安定表示を確認する必要がある。

今回の正式版には通常より多くの破壊的変更も入った。Modularは、ほぼすべての変更に非推奨エイリアスとコンパイラのfix-itを用意し、移行を機械的に進められるとしている。1.0は変更が止まった瞬間ではなく、大きな整理を済ませたうえで以後の互換性を管理し始める境目に当たる。

破壊的変更で言語の境界をそろえる

メモリ周りではPointerUnsafePointerが一つの型へ統合された。危険性を型全体に背負わせる設計から、境界検査を省く読み書きなど個々の操作へunsafe_を付ける設計へ変わる。古い名前は非推奨として残るため、既存コードを一度に書き換えなくても移行できる。

ライフタイム検査には、コンテナ内部の参照を追跡する実験機能「interior origins」が加わった。たとえばListの要素を参照したまま、再配置を起こし得るappend()pop()を実行すると、コンパイラはその参照を後で使おうとした時点で拒否する。実行時にぶら下がり参照が生じる前に止める仕組みだが、ロードマップは一部の状況がまだデフォルトで安全ではないとも明記している。

Pythonから移る開発者にはlambda式が加わり、単一式の無名クロージャを書けるようになった。一方、Pythonとの相互運用では、PythonObjectの算術、比較、包含判定がCPythonの抽象プロトコルを直接使うようになった。公式測定によると、a + ba < bを繰り返す処理経路は約12倍速くなった。これはMojo全体の対Python性能ではなく、言語間の呼び出し境界に絞った改善である。

MojoとMAXの役割分担も明確になった。アクセラレータ向けAPIの一部は新設のmaxパッケージへ移り、layoutもMAX側に同梱される。ホストとデバイスで幅が異なり得るIntUIntはGPUカーネルへ渡せなくなり、Int32など固定幅型を使う。異種ハードウェア対応を掲げるからこそ、移植性を壊す暗黙の前提を1.0で切り離した。

AD

汎用言語への道はPhase 2に続く

Mojoのロードマップでは、高性能なCPU・アクセラレータ向けコードを扱うPhase 1が完了し、システムアプリケーションへ用途を広げるPhase 2が進行中である。つまり1.0は、高性能カーネルとPython拡張の基盤が固まった節目だ。RustやC++が担う幅広いアプリケーションを、すでに同じ成熟度で置き換えられるという宣言ではない。

未着手の項目には、第一級のasync、代数的データ型とパターンマッチ、アクセス制御が並ぶ。複数マシンをまたぐ分散処理の初期対応とパッケージ管理もこれからだ。LSPとVS Code拡張は開発中である。テスト、ベンチマーク、デバッガーも作業が続き、プロファイラーは未着手とされる。

Pythonとの関係にも線引きがある。MojoはPython風の構文を採り入れ、既存Pythonコードを高速化する入口を整えているが、現時点では型指定のないPython風コードやPythonライブラリとの全面互換を目標にしていない。クラスや継承など動的オブジェクト指向の機能は、まだ始まっていないPhase 3の範囲だ。将来、完全なPythonスーパーセットになるかどうかも確定していない。

開発者にとって現実的な導入先は、Pythonアプリケーション全体の置換よりも、性能が必要な処理やGPUカーネルをMojoへ移す構成になる。MAXと組み合わせれば、そのコードをグラフ最適化や推論ランタイムへ接続できる。1.0はこの限定された強みを保守可能にするが、一般的なアプリ開発へ広げるにはPhase 2の進捗を待つ必要がある。

Qualcomm傘下で試される公開性

Qualcommは2026年7月29日にModularの買収を完了した。発表ではMojo、MAX、Modular Cloudを製品・ブランドとして継続し、CPUからGPU、NPU、カスタムシリコンまでを扱うオープンな異種計算エコシステムへの姿勢も維持するとした。Mojo 1.0は、その方針表明後に出た最初の大きな言語リリースに当たる。

公開済みのmodular/modularリポジトリには、Mojo標準ライブラリ、MAXのCPU・GPUカーネル、コード例が含まれる。リポジトリへの貢献はApache License 2.0 with LLVM Exceptionsで扱われる一方、MojoとMAXの使用・配布にはModular Community Licenseも関わる。利用者が言語処理系を自ら検証し、移植し、長期保守できるかという問いは、標準ライブラリの公開だけでは決着しない。

残る大きな一手がMojoコンパイラの公開だ。公式ロードマップはPhase 1の完了を公開に適した時点とし、Mojo公式サイトもオープンソース化が近いと案内している。しかし、8月12日時点でコンパイラ公開の完了は確認できない。The Registerが伝えた質疑で、Chris LattnerはNVIDIAAMDが引き続き強いパートナーであり、問題は予想していないと述べたが、ベンダー中立性は実装とライセンスを外部が検証できて初めて測れる。

Mojo 1.0は、異種計算向け言語を試す段階から、依存先を選びながら保守する段階へ踏み出した。次の判断材料は、コンパイラのソースとビルド手順がどの条件で公開され、Qualcomm以外のハードウェア向けバックエンドへ外部開発者がどこまで変更を持ち込めるかである。