35000 倍——这是编程语言 Mojo 在 2023 年首次亮相时给出的性能数字,对比对象是全球最流行的编程语言 Python。三年后的 2026 年 8 月 11 日,这款”号称快 35000 倍”的语言正式发布了 1.0 版本。对不写代码的普通人来说,这像一条”又一款新车上市”的消息;但笔者想借这个机会,把两个真正值得聊的问题讲清楚:Python 为什么会慢,Mojo 凭什么快,以及那个 35000 倍,到底有几分是真的。
图:Mojo 1.0 发布公告头图。来源:modular.com
Python 为什么慢:像翻译每句话都要现翻现念
先澄清一点:说”Python 慢”,指的是它跑”纯计算”时慢,不是软件打开慢。文件读写、网络请求这类活,Python 和别的语言差不了太多——瓶颈在硬盘和网速。真正拉开差距的,是让电脑做大量运算的活儿,比如处理图片、跑算法。Python 慢有三个公认的原因,都藏在它的设计选择里。
第一,它是”解释型”语言。可以把编程语言想成菜谱,电脑是厨师。C 语言这类”编译型”语言,会把整本菜谱一次性翻译成机器能直接照做的指令,翻译一次,以后每次做菜都直接执行。Python 则像一位现翻现念的翻译:程序每一行都要当场翻译成机器指令再执行,运行一次就翻译一次。翻译这层开销,就是最基础的速度差。
第二,它的变量”不贴标签”。Python 里一个数字、一段文字,变量本身不声明自己是什么类型,电脑每次用到都得先检查”这到底是个啥”,再决定怎么处理。这就像抽屉不贴标签,每次拿东西都要打开确认一遍;而标签齐全的抽屉(静态类型),主人心里有数,拿取路径也能提前规划。
第三,它有个叫 GIL 的”单行道”。简单说,Python 的纯代码在同一时刻只允许一个线程在干活。哪怕你的电脑有 32 个核心,纯 Python 程序也只能一个一个来——像一家有十几个灶台的餐厅,却只有一位厨师轮流掌勺。
这三个设计叠加,让 Python 在”纯计算”赛道上慢得离谱。这也解释了为什么几乎所有 Python 的科学计算库——包括 AI 圈几乎人人用的 NumPy、PyTorch——底层都是 C/C++ 代码在代劳:Python 负责”指挥”,重体力活全交给 C。换句话说,大众感知里”Python 算得慢”,其实是这套设计换来的:它把”写起来省事”放在第一位,把”跑得快”让位给了底层。这个取舍成就了 Python 三十年来的流行,也成了它绕不开的软肋。
Mojo 凭什么快:换一条全新的轨道
Mojo 是 Modular 公司推出的语言,2023 年 5 月首次亮相。这家公司的创始人 Chris Lattner 是苹果 Swift 语言、编译器工具 LLVM 的作者,做编译器属于主场作战。Mojo 的快,本质上是把上面三条”慢因”逐一拆掉。
Mojo 是编译型语言,程序整体翻译成机器码后再运行,翻译开销只付一次——这是第一层提速。它背后那套叫 MLIR 的编译器底层,则带来第二层:同一份代码,编译器会针对不同类型的芯片(普通电脑的 CPU、显卡 GPU、各类 AI 专用芯片)分别生成最合适的机器指令。打个比方,过去的做法是”给每个品牌的厨房各写一本菜谱”,MLIR 则是”一本菜谱,自动适配所有厨房”。
另外,Mojo 引入了”贴标签”的静态类型和类似 Rust 的内存管理方式,编译器在运行前就知道每个数据的类型,可以提前做大量优化,还能顺手把一类常见的内存错误挡在编译阶段。对开发者来说,1.0 正式版还有一个务实的含义:语法不再三天两头变动,适合拿它做长期项目——这正是这次发布公告里反复强调的承诺。
还有一层考虑是”人”的因素:Mojo 的语法尽量贴近 Python,Python 程序员上手不用重新学一门”外语”。当然,官方路线图里也悄悄改过说法——最初说要做”Python 的完整超集”,如今写的是”是否成为完整超集,不一定”。这意味着它更像是”长得像 Python 的新语言”,离”跑得快的 Python”这个最初设想还有距离。
说句笔者的理解:Mojo 的快,靠的是换一条轨道——翻译方式、类型系统、硬件适配全部重来。高铁的提速逻辑正是如此:轨道系统换了,速度量级就完全不同。Mojo 的主场是 AI 芯片编程:现在给显卡写程序,基本绕不开 NVIDIA 家的专用语言 CUDA,等于被一家芯片厂商绑死;Mojo 想做的,是一套代码跑遍所有芯片的替代品。
35000 倍是真的,但要看清它脚下的”赛道”
接下来是重点:这个 35000 倍是怎么测出来的?
它出自 2023 年 Mojo 发布时的官方演示,测试项目是著名的曼德博集合(Mandelbrot)分形计算——一段密集的数学循环。
图:曼德博集合(Mandelbrot set)分形——35000 倍基准测试用的就是这类密集数学计算。来源:Wikimedia Commons
对比的对手,是”纯 Python 手写循环”,恰好是 Python 最慢的场景:每一轮循环都叠加了解释执行、类型检查、单线程三重开销。而一旦 Python 用上 NumPy 这类底层由 C 代劳的库,差距立刻从 35000 倍缩到大约 12 倍——依然可观,但已经是另一个量级。这个对比条件,当年就有技术社区(Slashdot 等)的评论指出过。
这意味着什么?35000 倍是真的,但它更像是特定赛道的一张”单项冠军”证书,不是所有场景的通用通告。绝大多数普通程序,瓶颈在硬盘读写、网络等待、数据库查询,换任何语言提速空间都很有限。对这次 1.0 发布,Hacker News 上 108 条评论里,有不少人就在验收这张”成绩单”:有网友指出,1.0 发布时连和 PyTorch(AI 领域的主流框架)的正面性能对比都没有给出来,“这本身说明了很多”;也有人对”1.0”这个标签不买账,调侃”无非是宣布我们决定现在叫 1.0 了”。
新语言真正的仗:生态、开源与 39 亿美元
语言本身快,只是入场券。Python 用三十年攒下了几十万个现成库——图像处理、数据分析、网页、AI,样样有现成轮子。新语言再快,把整个生态搬过来是巨大的成本,这是 Python 很深的护城河,也是 Mojo 面前最难翻的山。
Mojo 的社区数据并不难看:标准库开源后,近 200 名贡献者提交了 1100 多个改动,改动了超过 20 万行代码。但编译器本体至今闭源,官方承诺 2026 年内开源——这成了评论区最集中的质疑点,“编译器不开源,我不会用它”是反复出现的态度;还有人吐槽 1.0 公告的头图”AI 味太重,像营销页”。8 月 18 日,Modular 将在旧金山召开 ModCon 大会,不少人在等那里的开源消息。
还有一件绕不开的事:2026 年 7 月 29 日,芯片巨头高通宣布以 39 亿美元完成对 Modular 的收购,创始人 Lattner 出任高通高管。有人说这是”人才收购,产品可能被晾在一边”,也有人认为真金白银说明市场看好。对普通读者来说,这笔交易至少传达了一个信号:把”一套代码跑所有芯片”这件事做好,是有商业价值的。
写在最后
笔者无意给 Mojo 下结论——1.0 是一个里程碑,但也只是漫长语言竞赛的一站。语言之争短期内不会改变普通人手上的软件:Python 不会因为一个新语言的诞生而消失,它已经长成了 AI 与数据世界的地基;Mojo 能不能成,取决于接下来两年生态能不能滚起来、编译器开源是否兑现。
对不写代码的读者,这件事更值得记住的是另一层:当有人再抛出”快 35000 倍”这类数字时,值得多问一句——在什么场景下、跟谁比、比的是什么?数字背后的条件,往往比数字本身更诚实。
参考链接:
- Modular 官方博客《Modular 26.5: Mojo 1.0 is here!》
- Hacker News 社区讨论《Mojo 1.0》(item id 49261128)
- 维基百科《Mojo (programming language)》词条
- Slashdot 早期报道:Mojo 发布与 35000 倍数字的社区讨论
- 高通 39 亿美元收购 Modular 的相关报道