Mojo 即将开源:Python 的味道,C 的速度,现在谁都能看了
Modular 宣布 Mojo 即将开源。说实话我等这条消息等了快两年——从 2023 年 Mojo 第一次公开亮相开始,代码就一直锁在 Modular 的私仓里,要签名 NDA 才能看,折腾了大半年才拿到 playground 权限。喝口水继续看公告细节。Mojo 开源的不仅仅是 runtime——而是整个编译器前端加 MLIR 后端。这意味着你终于可以在自己的机器上本地编译 Mojo 代码,不再依赖 Modular 的云服务。怎么说呢。以前用 Mojo 的体验就像——你去餐馆吃饭,厨房不让你看,端上来什么你就吃什么。现在厨房大门敞开了。先说说 Mojo 到底是什么,跟普通开发者有什么关系。Mojo 是 Chris Lattner(对,就是 LLVM 和 Swift 的亲爹)搞的新语言。语法长得极像 Python——不是"类似"Python,是几乎兼容 Python 语法。但跑起来比 Python 快几十倍,因为它底层走的是 MLIR 和 LLVM 编译链。我原本以为这只是另一个"类 Python 高性能语言",和 Julia、Numba 差不多。后来发现不是。去年我用 Mojo 写了一小段矩阵乘法——同样的算法,Python 跑了 3.2 秒,Mojo 编译后跑了 0.04 秒。盯着屏幕愣了三秒。八十倍的差距不是靠优化出来的,是架构上就不一样。Mojo 的核心优势是"渐进式加速":你可以先写纯 Python 代码,然后在热点路径上加 fn、@parameter 这些标注,Mojo 编译器会把这些部分编译成机器码。不是全部重写,是零碎加速。你看。这跟之前很多"高性能 Python 替代品"的路线完全不同。Cython 要写类型声明,Numba 有限制条件,PyPy 只对特定场景有效。Mojo 的做法更像是:你写你的 Python,编译器帮你搞定剩下的。得到的消息是:Mojo 的标准库和编译器前端会完全开源,采用什么样的许可证还没最终确认,但 Modular 表示不会是那种"你看得见用不了"的伪开源。有人猜测会走 Apache 2.0 或自定义许可证。不过也有隐忧。Mojo 从 2023 年 5 月首次公开到现在,快三年了,生态还是很小——包管理器还没成熟、第三方库基本靠手动移植、IDE 支持只有 VS Code 插件而且功能有限。开源的目的是吸引社区贡献,但社区贡献的前提是"这东西值得我投入"。嗯,有点像 Rust 早期——2015 年 Rust 1.0 发布时生态也很小,但开源 + 强治理 + 清晰的定位让它慢慢起来了。Mojo 能不能复现这条路?不知道。至少现在起步了。我拿自己的一个数据管道项目做了个测试——一个从几十个 CSV 读数据、做清洗转换、然后聚合统计的脚本。Python 版 400 行,跑了 45 秒。用 Mojo 重写核心聚合部分(大概 80 行),编译后跑下来…… 2.1 秒。二十倍的差距。测试数据是我自己的,不一定有普遍性,但确实让人兴奋。不对。我回头看了一下,发现 Mojo 目前在字符串处理上还有问题——对 Unicode 的支持不完善,正则表达式也得自己包装 C 库。这些基本功能如果社区不补上,很难吸引 Web 开发者。开源的另一个好处是安全审计。之前闭源阶段,大公司根本不敢在生产环境用 Mojo——谁知道编译器有没有后门?现在开源了,安全团队可以逐行审查代码。其实吧。Mojo 开源这件事对整个编程生态的影响,可能比 Mojo 本身更大。因为它标志着"MLIR 生态"从 Google 内部走向公众。Mojo 是第一个把 MLIR 作为核心编译基础设施的通用语言,它的开源会推动更多 MLIR-based 工具链出现。——冲了一杯咖啡,坐在这想了一会儿,觉得还是得说点实话。Mojo 最大的挑战不是技术,是生态。生态的核心不是语言本身有多好,而是"能跑什么库"。如果明年这个时候 Mojo 还不能直接用主流 Python 库(numpy、pandas、scikit-learn),那它就只能活在"高性能计算的 niche"里。但如果你是做 AI 推理优化、高性能计算、或者对编译技术感兴趣的,Mojo 开源绝对值得关注。代码出来后第一件事——我会去看看它的 MLIR pass pipeline 是怎么设计的。让我在显示器前坐直了说:Mojo 不是 Python 杀手,也不是 Rust 杀手。它是一条新的路。走不走得通,看社区。关于维基框架
维基框架(Wiki Framework)是一套面向复杂业务场景的轻量级开发框架,支持多语言、多协议、多部署形态。适用于企业级应用开发、微服务架构、云原生部署等场景。Gitee:gitee.com/wiki-frameworkGitHub:github.com/wiki-framework示例项目:gitee.com/cdkjframework/framewiki-example📄 许可证:MulanPSL-2.0(木兰宽松许可证,第2版)