过去十多年里,AI 开发者已经形成了一套约定俗成的技术栈,上层用 Python 写模型、脚本和工具,下层再用 C、C++、CUDA,或者各家硬件厂商提供的 DSL 编写高性能内核。
这种组合已经被证明非常有效,但问题也越来越明显。
随着 AI 模型规模不断扩大,计算硬件变得越来越复杂,从 CPU、GPU 到 TPU,以及越来越多的 NPU、ASIC 和其他专用加速器,开发者需要面对的已经不再是单一的计算平台。一个 AI 系统往往同时涉及多种硬件、多套编程模型和不同的开发工具。

图源:Mojo
于是,一个问题开始摆在开发者面前,那就是有没有可能用一门编程语言,可以把 Python 的易用性和 C++、CUDA 这类底层语言的性能结合起来,同时直接面向 AI 时代越来越复杂的异构计算环境?
那 Mojo 编程语言应运而生,这门新语言从 2023 年正式亮相开始,经过三年左右的发展,最近终于迈过 1.0 这个重要节点。
01
从 Modular 创立到 Mojo 1.0
Mojo 的故事要从 Modular 这家公司说起。创始人之一 Chris Lattner 是编译器和语言圈里的大牛,LLVM、Clang、Swift、MLIR 都出自他之手,也深度参与了谷歌 TPU 等基础设施。另一位创始人 Tim Davis 则长期负责 Google Brain,以及 TensorFlow、XLA 等核心系统。
两人创立 Modular 的初衷很简单,当下的 AI 软件栈过于碎片化,训练、推理、预处理、后处理、部署,各有一套工具和语言;不同硬件又是一套各自为政的编程模型。
但 AI 不会永远只跑在一两种 GPU 上,未来一定是 CPU、GPU、TPU、各家自研 AI 加速器甚至是定制 ASIC 大爆发的时代,而现有软件栈(尤其是 Python + 各种框架 + 各家驱动)根本撑不住这种异构性。

图源:Mojo
如果要做一个横跨这些硬件的统一平台,只在现有的语言上修修补补肯定不够。于是,一个原本不在计划内的决定出现了,干脆自己开发一门新的语言,这就是 Mojo 的起点。

图源:X
在 2023 年刚刚亮相时,Mojo 的一大特点就是既兼容 Python 语法和生态,又能到底层做系统编程和算子内核,很像「Python 化的 C++」,而且在发布之初,凭借可以比 Python 快 35000 倍的实力,在开发者圈刷屏。
从 2023 年起,Mojo 一直以闭源编译器 + 开源标准库的形式在发展。Modular 在内部用 Mojo 写 MAX 推理框架、GPU 内核和大量基础设施,社区则通过标准库和开源 kernel 代码参与贡献。Mojo 在刚刚起步的阶段发展很快,语言语法、类型系统和所有权模型都经历了多轮大改动,但对使用它的开发者就不够友好了,因为 Moji 迭代、更新速度太快,写写短期项目还行,用来写长期项目就得时不时重构。
为了解决这个问题,Modular 在 2024 年提出通向 1.0 的路线。计划先把语言打磨到足够稳定,再给社区一个可以安心使用的版本。

图源:Mojo
这一等就是两年多,这个月 Mojo 正式发布 1.0 版本,标志着语言语义进入「长期稳定」的阶段。紧接着 1.0 发布,Modular 还开源了 Mojo 编译器和全套工具链,并采用 Apache 2.0 许可证。这也意味着各个硬件厂商、云厂商、研究机构都可以自由地在 Mojo 之上扩展和集成,不受商业许可限制。

图源:Mojo
与此同时,在这个关键节点上,高通宣布以约 31 亿美元全股票价格收购 Modular,但会继续保持 Mojo、MAX 和 Modular Cloud 的独立运营,也会保持 Mojo 开源。这基本也打消了业界对 Mojo 被收购后会不会闭源、锁死在高通生态的担忧,
到这里,Mojo 完成了从内部实验语言、到 1.0 正式版、完全开源、融入大厂生态完整一轮进化。
02
Mojo:为 AI 量体裁衣
Mojo 之所以被称为面向 AI 的编程语言,不光因为它能写 AI,主要是它从一开始就针对 AI 工作负载和硬件来设计。
对大多数 AI 团队来说,目前的现状是模型逻辑、训练脚本写在 Python 里,方便试验和协作;性能关键路径(矩阵乘、注意力、编解码内核、调度器)又不得不改用 C/C++、CUDA 或厂商 DSL,甚至写汇编;两层之间通过各种 FFI、扩展模块打通,调试、部署都非常麻烦。
Mojo 则是想打通它们之间的割裂,用一门语言覆盖「高层业务 + 底层算子 + 系统组件」三层,让你既能写推理服务、调度器、工具,也能写 GPU 和专用加速器上的内核。
所谓「面向 AI 的编程语言」,主要体现在以下几个方面:

图源:Mojo
首先是硬件,Mojo 从一开始就假定目标平台不是单一 CPU,而是包含多核 CPU、GPU、各类 Tensor/Matrix 单元乃至近存计算芯片的「异构系统」。语言内建了对向量化、并行计算和设备内核的支持,配合 MLIR 和 MAX,可以用同一种语法写 CPU 和 GPU 内核,而不用在 Python、CUDA、C++、各家 DSL 之间来回切换。
其次是性能模型,在特定条件下,Mojo 比 Python 快 35000 倍,并且在保留高级语法时,在同等算法下逼近甚至超过 C/C++。为此,它采用值语义 + 所有权系统管理内存,在编译期尽量消除引用计数开销,提供零成本抽象,并通过编译期元编程(comptime)做专门化和自动调优,以适配不同硬件。
第三是互操作性,Mojo 在语法上刻意向 Python 靠拢,对 Python 开发者来说,Mojo 看起来非常眼熟,函数、缩进、控制流、列表等也都充满 Python 的味道;你可以直接导入 Python 模块,调用 NumPy、matplotlib,甚至在 Mojo 里嵌入 Python 代码,同时逐步用 Mojo 重写性能关键路径。对开发者来说,可以非常平滑地从 Python 迁移到 Mojo。
从长远路线看,这种全面的特性让 Mojo 可以成为一个既能写 GPU 内核,又能写后端服务,甚至将来能直接承载大量 Python 业务逻辑的通用语言。
03
但替代 Python?还为时过早
展望 Mojo 的未来,大致可以从技术演进、生态扩展这几个方面来思考。

图源:Mojo
技术上,已经公开的路线图提到,即将重点补齐的是更完备的异步编程模型、模式匹配、代数数据类型(Unions)、更友好的包管理和构建系统等。这些功能一方面是向 Rust/Swift 等现代系统语言靠拢,增强其写通用系统和服务端应用的能力,另一方面也是为了降低日常工程开发的负担。
生态上,随着编译器和工具链完全开源,Mojo 能否像 LLVM、Rust 一样吸引高校、芯片厂、云厂商一起扩展,将决定它能走多远。高通自己显然会深度投入,但真正的理想状态,是看到更多硬件厂商、云平台、模型提供方基于 Mojo+MAX 做自己的加速与扩展。
那么问题来了。既然 Mojo 同时拥有 Python 的语法和系统级语言的性能,那「它会取代 Python 吗?」肯定是你接下来会问的问题。
至少现在来看,答案是否定的。

图源:TIOBE
Mojo 仍然年轻,也还在高速发展,从 TIOBE 等通用语言流行度指数来看,Mojo 目前还远远排不上号,和 Python、C、C++、Java、Rust 这种头部语言相比,生态体量还是早期阶段。
短时间里,要说 Mojo 能否取代 Python,那还为时过早,对今天的开发者来说,也许更现实的问题是,在继续用好 Python 的同时,什么时候开始试着用 Mojo 写一两个真正吃性能、吃硬件的模块,亲手感受一下这门「为 AI 时代准备的系统语言」才是能合理的期待。
如今,它才刚刚迈过 1.0 的门槛,刚刚长出萌芽,但放眼未来五年、十年,届时当我们再次谈论 AI 编程语言格局时,或许很难绕开 Mojo 这个名字。

