Mojo 1.0正式发布:用Python语法写出C速度,5分钟跑起第一个程序
先给结论
8 月 11 日,Modular 官方宣布 Mojo 1.0 正式发布——这个号称”像 Python 一样写、像 C++ 一样跑”的语言,终于结束了频繁变动的开发期,进入稳定版本。对想兼顾”开发效率”和”运行性能”的开发者来说,现在是可以认真入坑的时点。本文带你 5 分钟装好 Mojo 1.0,跑起第一个程序。
Mojo 是什么,为什么值得学
Mojo 是 Modular 公司推出的系统编程语言,2023 年首次亮相,语法几乎就是 Python 的超集,但它会编译成原生机器码,能直接写 CPU/GPU 高性能代码。核心卖点有三个:
– Python 用户零门槛:会写 Python 就能看懂 Mojo,`def`、`print`、循环都是熟悉的味道。
– 性能向 C 看齐:静态类型 + 编译执行,官方定位就是”消除 Python 的性能瓶颈”。
– AI 原生:内置对 GPU、张量的支持,写 AI 推理和训练代码不用切语言。
1.0 版本的意义在于语言 API 稳定:1.x 阶段只会做加法式演进,不再像 beta 期那样频繁改语法。社区已经贡献了超过 1100 个 PR,标准库开源,官方还承诺 2026 年内开源编译器和工具链。
第 1 步:安装 Mojo 1.0
Mojo 1.0 现在通过 Python 生态的 `uv` 安装(比旧版 `modular` 包更简单):
# 安装/升级 Mojo 本体
uv pip install --upgrade mojo
# 可选:需要 GPU/模型生态时安装全套 MAX
uv pip install max[all]
前置条件:需要已安装 Python 3.10+ 和 `uv`(没有就先 `curl -LsSf https://astral.sh/uv/install.sh | sh`)。
第 2 步:写第一个程序
新建 `hello.mojo`:
def main():
print("Hello, Mojo 1.0!")
# Python 风格列表推导,Mojo 直接支持
squares = [x * x for x in range(10)]
print(squares)
第 3 步:编译运行
mojo run hello.mojo
看到输出 `Hello, Mojo 1.0!` 和平方数列,说明安装成功。想生成可执行文件就改成:
mojo build hello.mojo
./hello
验证一下”Python 速度”的差别
写个循环求和对比:
def main():
var total: Int = 0
for i in range(100_000_000):
total += i
print(total)
同样逻辑用纯 Python 跑通常要几秒,Mojo 编译执行在毫秒级——这就是”性能向 C 看齐”的直观体验。
常见失败与处理
– `uv` 命令找不到:先安装 uv,或改用 `python3 -m uv pip install –upgrade mojo`。
– 安装后 `mojo` 命令不存在:确认 `uv pip` 安装到了当前 Python 环境的 bin 目录,必要时重启终端。
– 1.0 之前的旧代码跑不起来:beta 期语法有收敛,老代码需要对照 1.0 迁移说明改(主要是变量声明、闭包、指针类型的变化)。
和现有方案比,Mojo 强在哪
Python 加速方案并不少,Numba、Cython、PyPy 各有拥趸,Mojo 的差异在三点:第一,语法不”变形”——Numba 要加装饰器、Cython 要写 .pyx 扩展,Mojo 直接写 Python 风格代码编译即可;第二,一套代码通吃 CPU 和 GPU——不用学 CUDA 就能写 GPU 内核,官方提供的 `vectorize`、`TileTensor` 抽象让并行计算门槛大幅降低;第三,可编译成独立可执行文件——部署时不依赖 Python 运行时,这让它更适合做工具链和嵌入式场景。当然 Mojo 的生态还年轻,第三方库数量远不如 Python,最务实的用法是:Python 写业务逻辑,Mojo 写性能热点,两者通过互操作无缝衔接。
谁适合现在入坑
被 Python 性能折磨的数据/算法开发者、想入门 GPU 编程又怕 C++ 难度的同学、关注”Python 系系统语言”的技术爱好者。如果你只想快速出活、不在乎性能,继续用 Python 完全没问题——Mojo 是给”性能敏感”场景准备的。
一句话
Python 的舒服,C++ 的速度,Mojo 1.0 第一次把两者稳定地打包交付了。
🔥 关注LC智趣厅,实用技术教程持续更新
👇 收藏转发,和小伙伴一起上手 Mojo
— END —
LC 智趣厅 · 科技与生活的交点
ihygg.cn