35,000倍——这是,プログラミング言語Mojoが2023年に初めて披露された際、世界で最も人気のあるプログラミング言語Pythonと比較して提示されたパフォーマンスの数字です。それから3年を経た2026年8月11日、この「35,000倍速いとされる」言語が正式にバージョン1.0をリリースしました。コードを書かない一般の人々にとって、 commercialこれは「新しいスポーツカーが発売された」程度のニュースに思えるかもしれません。しかし本稿では、この機会に真に議論する価値のある2つの疑問、すなわち「Pythonはなぜ遅いのか」「Mojoはなぜ速いのか」、解き明かします。そしてあのアピールされた35,000倍という数値にはどれほどの真実が含まれているのかを解説します。
図:Mojo 1.0 リリース告知のアイキャッチ画像。出典:modular.com
Pythonはなぜ遅いのか:一言ずつその場で通訳しているようなもの
まず一つの誤解を解いておきましょう。「Pythonが遅い」というのは、純粋な「計算処理」を実行する際の話であり、アプリの起動が遅いという意味ではありません。ファイルの読み書きやネットワークリクエストといった処理では、Pythonと他の言語の差はそれほど大きくありません。ネックとなるのはディスクI/Oや回線速度だからです。真の大差がつくのは、画像処理やアルゴリズム実行のように、コンピュータに大量の数値計算を行わせる場面です。Pythonが遅いとされる理由は、その設計上の選択にある3つの公知の要因に起因しています。
第一に、Pythonは「インタプリタ型」言語です。プログラミング言語を「料理のレシピ」、コンピュータを「シェフ」に例えてみましょう。C言語のような「コンパイル型」言語は、レシピ全体をあらかじめマシンが直接理解できる命令に一括翻訳しておきます。一度翻訳すれば、あとは調理のたびにその命令をそのまま実行するだけです。一方、Pythonは「一言ずつその場で通訳する通訳者」のような存在です。プログラムの各行を実行するたびにリアルタイムでマシン語に翻訳するため、実行するたびに翻訳のオーバーヘッドが発生します。これが速度差の基礎となります。
第二に、変数に「ラベルが付いていない(動的型付け)」点です。Pythonでは、数値や文字列といった変数自体が自分がどの型であるかを宣言していません。そのため、コンピュータは変数を利用するたびに「これは一体何なのか」を毎回確認してから処理方法を決定する必要があります。これはラベルのない引き出しから物を探すようなもので、中身を取り出すたびに毎回確認しなければなりません。一方、型が明確な静的型付け言語は、引き出しにきちんとしたラベルが貼られており、取り出しルートもあらかじめ最適化されています。
第三に、GIL(Global Interpreter Lock:グローバルインタプリタロック)と呼ばれる「片側一車線」の制約です。簡単に言えば、純粋なPythonコードは同時に1つのスレッドしか動作を許されません。仮にコンピュータに32個のCPUコアがあろうとも、純粋なPythonプログラムは1つずつ順に処理するしかありません。これは、十数台のコンロがある厨房で、1人のシェフが交代で鍋を振っているような状態です。
これら3つの設計要素が重なり合うことで、Pythonは「純粋計算」の領域で著しく遅くなります。だからこそ、NumPyやPyTorchといったAI・科学計算ライブラリのほとんどは、内部の重い処理をC/C++言語で実装しています。Pythonは「指示を出す指揮官」に専念し、重労働はすべてCに委ねているのです。言い換えれば、Pythonの計算が遅いのは、「書きやすさと開発効率」を最優先にし、「実行速度」を下層に譲った設計のトレードオフの結果です。このトレードオフこそが30年間にわたるPythonの隆盛を支えた一方で、回避できない弱点ともなっています。
Mojoはなぜ速いのか:まったく新しい軌道への乗り換え
Mojoは、Modular社が2023年5月に発表したプログラミング言語です。同社の共同創業者であるChris Lattner氏は、AppleのSwift言語やコンパイラ基盤LLVMの生みの親であり、コンパイラ開発においてはまさにホームグラウンドと言えます。Mojoの速さは、前述したPythonの「3つの遅さの要因」を解体したことに由来します。
Mojoはコンパイル型言語であり、プログラム全体をあらかじめマシン語にコンパイルしてから実行するため、翻訳コストは1度しか発生しません。これが第一段階の高速化です。さらに、その裏にあるMLIR(Multi-Level Intermediate Representation)というコンパイラ基盤が第二段階の最適化をもたらします。同じコードから、コンパイラがPCのCPU、GPU、さらには各種AI専用チップに至るまで、ターゲットとするハードウェアに最適化されたマシン語命令を自動生成します。従来のコンパイラが「厨房のブランドごとに異なるレシピを書く」方式だとすれば、MLIRは「1つのレシピで全厨房に自動適合させる」仕組みです。
また、Mojoは静的型付けとRust風のメモリ管理モデルを導入しています。コンパイラが実行前に各データの型を把握しているため、事前最適化が可能となり、同時にメモリ安全性に関するエラーをコンパイル段階で検出・排除できます。開発者にとって、1.0正式版のリリースには「文法が安定した」という実用的な意味合いもあります。明日になれば書き方が変わるというリスクがなくなり、長期的なプロジェクトにも採用できるようになりました。
さらに「人」の要因もあります。Mojoの構文はPythonにきわめて近く作られており、Pythonエンジニアが新しい「外国語」を一から学ぶ必要がありません。ただし、公式のロードマップでは初期の「Pythonの完全な超集(スーパーセット)を目指す」という表現から、現在では「完全な超集になるかは未定」へと静かに方針転換されています。これは、Mojoが「Pythonに似た新しい言語」へと軸足を移しつつあることを意味しています。
筆者の見解を述べれば、Mojoの速さは「軌道そのものを敷き直した」ことにあります。コンパイル方式、型システム、ハードウェア適合のすべてを一新したのです。新幹線の高速化と同じロジックであり、インフラそのものを変えることで速度の次元が変わります。Mojoの真価が発揮されるのはAIチップのプログラミング領域です。現在、GPU向けのプログラミングはNVIDIAの独自言語CUDAに依存せざるを得ず、単一のベンダーにロックインされています。Mojoが目指すのは、1つのコードで全チップに対応するベンダーフリーな代替選択肢となることです。
35,000倍は嘘ではない、ただし「どの土俵か」を見極める必要がある
ここで重要な問いに立ち返りましょう。あの「35,000倍」という数字はどのように測定されたのでしょうか?
この数値は、2023年のMojo発表時の公式デモにおける、マンデルブロ集合(Mandelbrot set)のフラクタル計算ベンチマークに由来します。密集した数学的ループ処理です。
図:マンデルブロ集合(Mandelbrot set)のフラクタル画像。35,000倍のベンチマークテストで用いられた密集型の数学計算の例。出典:Wikimedia Commons
比較対象となったのは「純粋なPythonの手書きループ」でした。これは、インタプリタの実行、型チェック、単一スレッドのトリプルパンチにより、Pythonが最も苦手とする条件です。しかし、Python側がC言語で最適化されたNumPyなどのライブラリを使用した場合、その差は35,000倍から一気に約12倍に縮まります。12倍も依然として大きな差ですが、次元がまったく異なります。この比較条件については、当時の技術コミュニティ(Slashdotなど)でも指摘されていました。
これが意味することは何でしょうか。35,000倍という数字自体は嘘ではありませんが、それは特定条件下の「種目別チャンピオン」の賞状のようなものであり、あらゆるシーンで適用できる万能の保証書ではありません。一般的な多くのアプリケーションにおいて、ボトルネックはディスクI/O、ネットワークの待ち時間、データベース検索にあり、言語を変えたところで得られる高速化の幅は限られます。今回の1.0リリースに関しても、Hacker Newsの108件のコメント欄では慎重な見方が多く示されました。あるユーザーは「1.0発表時点でPyTorchとの直接的なベンチマーク比較すら提示されていないことが多くを物語っている」と指摘し、また別のユーザーは「ただ単に自分たちで今1.0と呼ぶことにした宣言に過ぎない」と皮肉を交えて評しています。
新言語が直面する真の戦い:エコシステム、オープンソース、そして39億ドル
言語そのものの速さは、単なる入場券に過ぎません。Pythonは30年をかけて、画像処理、データ分析、Web開発、AIに至るまで、数十万もの成熟したライブラリ(エコシステム)を築き上げてきました。どれほど優れた新言語であっても、この広大なエコシステムを置き換えるには莫大なコストがかかります。これこそがPythonの最も強固な堀であり、Mojoが越えるべき最大の壁です。
Mojoのコミュニティ指標自体は決して悪くありません。標準ライブラリのオープンソース化以降、200人近くのコントリビューターが1,100以上のコミットを行い、20万行以上のコードが改修されました。しかし、コンパイラ本体は依然としてクローズドソースのままであり、公式は2026年内のオープンソース化を約束している段階です。これが開発者コミュニティにおける最大の懸念点となっており、「コンパイラがオープンソース化されない限り採用しない」という意見が目立ちます。また、1.0発表のアイキャッチ画像に対して「AI生成感が強くマーケティング色が濃すぎる」といった声も上がっています。8月18日にサンフランシスコで開催されるModular社の「ModCon」カンファレンスで、オープンソース化に関する新たな発表があるかどうかが注目されています。
さらに見逃せない出来事があります。2026年7月29日、半導体大手のQualcommが39億ドルでModular社の買収を完了し、創業者のLattner氏がQualcommの役員に就任したことが発表されました。これを「優秀な人材の獲得(アクハイア)であり、製品自体は置き去りにされる可能性がある」と捉える見方もあれば、「巨額の資金投下は市場からの期待の表れ」と評価する声もあります。一般の読者にとってこの取引が示す重要な事実は、「1つのコードで全チップを動作させる」という構想には極めて高い商業的価値が存在するという点です。
おわりに
Mojoに対して結論を下すのはまだ時期尚早でしょう。1.0は重要なマイルストーンですが、長大なプログラミング言語の歴史における通過点に過ぎません。言語の世代交代が一般ユーザーのアプリケーションを一朝一夕に変えることはありません。Pythonが新しい言語の登場によって即座に姿を消すことはなく、すでに現代のAIとデータ社会の不可欠な基盤となっています。Mojoが成功するかどうかは、今後2年間でエコシステムを拡大できるか、そしてコンパイラのオープンソース化を果たせるかにかかっています。
コードを書かない読者にとって、本件から得られる最大の教訓は思考の視点です。「35,000倍速い」といった刺激的な数値を目にしたとき、「どのような条件で、何と比較し、何を測定した結果なのか」を問う姿勢が重要です。数字の背景にある条件こそが、数字そのものよりも誠実に真実を語っているのです。
参考文献・リンク:
- Modular 公式ブログ Modular 26.5: Mojo 1.0 is here!
- Hacker News コミュニティ議論 Mojo 1.0 (item id 49261128)
- Wikipedia 項目 Mojo (programming language)
- Slashdot 初期報道:Mojo発表と35,000倍数値に関するコミュニティの議論
- Qualcommによる39億ドルでのModular買収に関する報道