当前位置:首页>python>Mojo 1.0来了:比Python快68000倍的AI编程语言,编译器刚开源

Mojo 1.0来了:比Python快68000倍的AI编程语言,编译器刚开源

  • 2026-10-12 10:44:40
Mojo 1.0来了:比Python快68000倍的AI编程语言,编译器刚开源

你有没有发现,最近几年 AI 圈有个怪现象:Python 跑得慢大家都知道,但没人愿意换。

为什么?因为 Python 生态太强了,PyTorch、NumPy、HuggingFace……换一门语言等于从头来过。可问题是,当你真的要写 GPU kernel、要优化推理性能、要把延迟压到毫秒级的时候,Python 就像一辆自行车上高速——能跑,但跑不快。

所以过去几年,每隔一阵就有人跳出来说"我要做 Python 的替代品"。Julia、Codon、Numba……结果呢?要么生态没起来,要么性能没到位。

但上周发生了一件事,我觉得值得认真聊聊——Mojo 1.0 正式发布,紧接着编译器也开源了。

这可不是又一个"PPT 语言"。Mojo 的背后站着 Chris Lattner——LLVM、Clang、Swift、MLIR 的创始人。而他的公司 Modular,刚刚被高通收购了。

我花了不少时间研究了这个事情,今天跟你聊聊 Mojo 到底是什么来头,为什么它可能是 AI 基础设施领域最重要的编程语言变化。

 🔧 Mojo 到底是什么?一句话说清楚

Mojo 是一门编程语言,目标很简单:用 Python 的语法,达到 Rust/C++ 级别的性能,还能直接写 GPU 代码。

听起来很玄乎对吧?但你想想,Python 之所以慢,核心原因是它是动态类型+解释执行。而 Mojo 做的事情是:保留 Python 的语法风格(你可以用 fn、var、def 这些关键字),但在底层把它编译成机器码。

更关键的是,Mojo 不是走 LLVM 那条老路,而是直接建在 MLIR(Multi-Level Intermediate Representation)上。这是 Chris Lattner 在 Google 期间主导设计的下一代编译器基础设施,专门为异构计算(CPU+GPU+各种AI加速器)优化。

fast.ai 的 Jeremy Howard 在 2023 年 Mojo 刚发布时就说过一句话:"Mojo 本质上是 MLIR 的语法糖。"这个评价很到位——它不是在已有编译器上打补丁,而是从编译器层面重新设计了一门语言。

 📅 时间线:从发布到开源,Mojo 经历了什么

Mojo 的故事其实挺曲折的。我帮你梳理一下关键节点:

🔸 2023年5月 — Mojo 首次发布,承诺会开源编译器。当时社区期待很高,但也有很多质疑

🔸 2024年 — 标准库开始接受社区贡献,但编译器一直是闭源的。社区对此颇有微词

🔸 2025年12月 — Modular 发布 1.0 路线图,承诺稳定核心语言特性

🔸 2026年5月7日 — Mojo 1.0 Beta 1 发布,同时上线 mojolang.org 官网

🔸 2026年6月24日 — 高通宣布收购 Modular,承诺保持平台开放性

🔸 2026年7月29日 — 高通正式完成收购

🔸 2026年8月11日 — Mojo 1.0.0 正式发布,API 稳定

🔸 2026年8月18日 — 编译器和工具链开源,Apache 2.0 许可证(含 LLVM 例外条款)

你发现没?从承诺开源到真正开源,整整过了三年。这三年里,社区对"你到底开不开源"这个问题的质疑就没停过。尤其是在高通收购之后,很多人觉得这事儿黄了。

但 Modular 在 ModCon 2026 大会上(8月18日,旧金山)直接把编译器源码放出来了。用的是 Apache 2.0 + LLVM Exceptions 许可证,跟 LLVM 项目本身的许可证一样——这意味着你可以拿去做商业项目,没问题。

 ⚡ 性能到底有多快?说点实际的

Modular 官方曾宣称 Mojo 比 Python 快 68,000 倍。这个数字来自特定的矩阵乘法基准测试,用了 SIMD + 并行优化。老实说,这种极端对比数字更多是营销用的,实际开发中不太会遇到这么夸张的场景。

但去掉营销滤镜,Mojo 的性能确实很能打:

🔸 在 Fibonacci 递归基准测试中,Mojo 的性能接近 Rust 和 Julia,比 Python 快 50 倍以上

🔸 矩阵乘法场景下,经过社区优化后,Mojo 已经追上 NumPy 的水平(之前一度比 NumPy 慢 4-5 倍,社区成员修复后赶上了)

🔸 对于 GPU kernel 编写,Mojo 可以直接用 Python 风格的语法写 CUDA/HIP 级别的代码,不需要学 C++

一个在 Hacker News 上讨论很多的观点是:Mojo 的性能优势主要来自编译时类型推断和 MLIR 后端优化,而不是语言本身有什么魔法。换句话说,任何能做同样优化的编译器都能达到类似性能。Mojo 的价值在于它把这个过程变得对 Python 开发者更友好。

 🏗️ 技术架构:为什么 MLIR 是关键

这里要稍微深入一点技术细节,但我会尽量讲人话。

传统的编译器路径是:源代码 → LLVM IR → 机器码。LLVM 非常强大,但它有一个局限——它主要是为 CPU 设计的。当你需要编译 GPU 代码、需要处理张量操作、需要优化内存布局的时候,LLVM 就有点力不从心了。

MLIR 是 LLVM 的"下一代"。它的核心思想是:允许多个层次的中间表示共存。你可以在高层用 Python 风格的语法,在中间层用张量操作的 IR,在底层用硬件特定的指令——整个编译过程可以在不同层次做不同的优化。

这意味着什么?意味着 Mojo 可以:

🔸 SIMD 操作 — 一条指令处理多个数据,这是性能的关键

🔸 内存布局控制 — 直接控制数据在内存中的排列方式,对 GPU 计算很重要

🔸 所有权语义 — 类似 Rust 的内存安全机制,不需要垃圾回收器

🔸 异构计算 — 同一份代码可以跑在 CPU、GPU、NPU 等不同硬件上

这就是为什么高通要收购 Modular——他们需要一套能统一编程各种 AI 芯片的软件栈,而 Mojo + MLIR 正是这个方向上最成熟的技术方案。

 🆚 对比:Mojo vs Python vs C++ vs Rust

我做了一个对比表,帮你快速理解 Mojo 的定位:

维度 Python C++ Rust Mojo
性能 慢(解释执行) 极快 极快 接近 C++/Rust
学习难度 简单 很难 较难 中等(Python 语法)
生态丰富度 极丰富 丰富 中等 早期(发展中)
GPU 编程 需借助 CUDA/框架 CUDA 原生 有限支持 原生 MLIR 支持
内存安全 GC 管理 手动管理 所有权系统 所有权系统

简单说:Mojo 想做的是"Python 的易用性 + Rust 的安全性 + CUDA 的 GPU 能力"三合一。这个定位很清晰,也很有野心。

 🔍 1.0 版本带来了什么新东西

Mojo 1.0 不只是版本号变了,它带来了几个重要的变化:

🔸 源码稳定性承诺 — 1.0 之前的 Mojo 经常 breaking change,社区维护的库经常被搞坏。1.0 之后,Modular 承诺 API 稳定,不会再随意破坏兼容性

🔸 Lambda 语法 — 终于支持 Python 风格的 lambda 表达式了,写起来更 Pythonic

🔸 LSP 改进 — 编辑器的代码补全、跳转、诊断功能大幅改善,开发体验接近主流语言

🔸 Mojo AI Skills — 新增的 AI 辅助编程功能,帮助开发者更高效地写 Mojo 代码

🔸 编译时元编程 — 可以在编译时做代码生成和优化,这是性能的关键来源之一

同时,标准库在 1.0 之前就已经开源了(2024 年开始接受社区贡献),编译器则在 1.0 发布一周后开源。Modular 表示计划在 2026 年底之前开始接受编译器的社区贡献。

 🎯 谁应该关注 Mojo?说说适用场景

这是我觉得最关键的问题。Mojo 听起来很厉害,但不是所有人都需要它。

✅ 强烈推荐关注

🔸 AI 基础设施工程师 — 你在写推理引擎、训练框架、模型服务,Mojo 的 MLIR 原生支持能帮你省掉大量 CUDA 调优工作

🔸 GPU kernel 开发者 — 你受够了 CUDA C++ 的繁琐,Mojo 提供了更友好的语法但不牺牲性能

🔸 高性能计算研究者 — 你需要在异构硬件上跑科学计算,Mojo 的跨平台能力很有价值

🤔 可以观望

🔸 普通 Python 开发者 — 如果你主要做 Web 开发、数据分析、脚本自动化,Python 生态完全够用,暂时不需要 Mojo

🔸 机器学习工程师 — PyTorch/JAX 已经帮你处理好了底层优化,除非你要写自定义算子,否则 Mojo 的优势不明显

⏳ 暂时不需要

🔸 前端/移动端开发者 — Mojo 的目标场景跟你的工作基本没有交集

🔸 初学者 — Mojo 生态还太早期,学习资源有限,建议先打好 Python 基础

 💡 高通收购意味着什么?商业模式猜想

2026 年 6 月,高通宣布收购 Modular,7 月底完成交割。这个收购背后的逻辑很清晰:

高通在 AI 芯片领域一直想跟 NVIDIA 竞争,但苦于 CUDA 生态的护城河太深。收购 Modular 意味着高通拿到了 Mojo + MAX 平台,可以为自家的 AI 芯片(包括手机端 NPU 和数据中心加速卡)提供一套统一的编程工具。

Chris Lattner 在 LinkedIn 上说了一句话很有意思:"AI 开发者应该有选择硬件的自由。"翻译一下:我们想打破 NVIDIA CUDA 的垄断。

这也是为什么编译器必须开源——如果 Mojo 的编译器是闭源的,其他硬件厂商(AMD、Intel、Google)根本不会考虑支持它。只有开源,才能让 Mojo 成为真正的行业标准。

 ⚠️ 风险和不确定性

当然,Mojo 不是没有风险。我列几个你需要注意的点:

🔸 生态早期 — 虽然编译器开源了,但 Mojo 的第三方库、工具链、教程资源都还很匮乏。现在用 Mojo 开发,很多事情需要自己造轮子

🔸 社区贡献限制 — 目前 Modular 还不接受编译器的外部贡献,计划 2026 年底开放。这意味着编译器的发展方向还是 Modular 说了算

🔸 高通收购的不确定性 — 虽然高通承诺保持平台开放,但大公司收购小公司后改变方向的案例太多了。长期来看,Mojo 能否保持 vendor-neutral 还是个问号

🔸 Python 兼容性 — Mojo 号称"Python 超集",但实际上并不兼容所有 Python 代码。很多 Python 库(比如 Pydantic)在 Mojo 上跑不了,因为它们依赖的动态特性 Mojo 不支持

🔸 竞争对手 — NVIDIA 有 cuTile Python(让 Python 直接编译到 CUDA),Julia 也在持续进化,Mojo 的窗口期并不是无限的

 🚀 如何快速上手

如果你决定试试 Mojo,这是最快的路径:

🔸 在线 Playground — 访问 playground.modular.com,不需要安装任何东西,直接在浏览器里写 Mojo 代码

🔸 本地安装 — 运行 curl -s https://get.modular.com | sh - 然后 modular install mojo

🔸 VS Code 扩展 — 搜索 "Mojo" 安装官方扩展,获得语法高亮和 LSP 支持

🔸 GitHub 仓库 — 编译器源码在 github.com/modular/mojo,可以研究内部实现

一个简单的 Mojo 代码示例,感受一下语法:

fn fibonacci(n: Int) -> Int:
    if n <= 1:
        return n
    return fibonacci(n - 1) + fibonacci(n - 2)

fn main():
    let result = fibonacci(30)
    print("Fibonacci(30) =", result)

看着很像 Python 对吧?但这段代码会被编译成机器码执行,性能比等价的 Python 代码快几十倍。

 📝 我的看法

说实话,Mojo 1.0 + 开源编译器这件事,是我 2026 年看到的最重要的编程语言事件之一。

不是因为它已经完美了——它的生态还很早期,社区还在成长,高通收购带来的不确定性也还在。而是因为它解决了一个真实存在的痛点:AI 开发者被困在"Python 太慢"和"C++ 太难"的二选一里太久了。

Mojo 给了第三个选项。而且这个选项的背后,站着一个曾经改变了整个编译器行业的人。

如果你是做 AI 基础设施的,我建议现在就开始关注 Mojo,甚至花几天时间上手试试。如果你是普通 Python 开发者,可以先观望,等生态再成熟一些。

但不管怎样,Mojo 这个方向是对的。编译器已经开源了,剩下的就看社区能不能把它推到下一个高度了。


💬 互动时间

你觉得 Mojo 能取代 Python 成为 AI 领域的主流语言吗?

你在工作中有遇到"Python 太慢但 C++ 太麻烦"的场景吗?

欢迎在评论区聊聊你的看法 👇

👆 觉得有用?点个关注不迷路

点赞 + 在看,是对作者最大的支持 ❤️

最新文章

随机文章