Python 现在可以运行 Mojo 了?


Python 现在可以运行 Mojo 了?

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

作者|Vincent编译|苏宓
出品|CSDN(ID:CSDNnews)
两年前,Swift之父、编译器大神ChrisLattner和Google前员工TimDavis组队创立了初创公司Modular,推出了高性能编程语言Mojo。凭借“比Python快90000倍”的惊人宣传语,Mojo成为整个开发者社区关注的焦点,被认为是“可能彻底改变Python命运”的新语言。
ChrisLattner曾这样描述Mojo:“它是Python家族的一员,汲取了所有这些酷炫的语言、编译器和其他技术,让Python向前迈进了一大步。我们认为它增强了Python的能力,赋予Python程序员超能力,让熟悉Python的人能够学习新知识,探索并征服新领域,而无需转用C++。”
而如今,ChrisLattner低调放出了一个意味深长的新变化:Python现在可以直接调用Mojo代码了。
Mojo正在被Python调用
据开发者VincentD. Warmerdam的实测,Python调用Mojo现在变得非常简单,详细步骤如下。
首先,可以直接用uv安装:
uvpipinstallmodular–index-urlhttps ://dl. modular.com/public/nightly/python/simple/
然后你可以创建一个. mojo文件,导出一个计算阶乘的函数factorial(),内容如下:

然后你就可以在Python中加载它:

运行结果如下:

一切运行正常。
问题显现
不过,在实测时,Vincent也注意到了一些问题,对于factorial(10)这样的轻量计算,Mojo与Python本身速度相差无几。但当输入扩大到factorial(100)时,Mojo返回的结果却是错误的(输出为0),而Python的结果则是正确的。
0Timetaken:2. 7894973754882812e-05secondsformojo188267717688892609974376770249160085759540364871492425887598231508353156331613598866882932889495923133646405445930057740630161919341380597818883457558547055524326375565007131770880000000000000000000000000000000Timetaken:9. 298324584960938e-06secondsforpython
这可能是Mojo侧溢出的结果。文档也提到这整套系统还处于早期阶段,说明其数值系统尚不成熟。
另一个例子
考虑到上面的问题可能是溢出引起的,Vincent又试了一个例子来看看能不能测出加速效果。这次是一个朴素的素数统计实现。Mojo代码如下:

对应的Python测试代码如下,此外Vincent还加了一个NumPy实现做对比:

运行结果如下:
Python原生实现耗时:约0. 45秒
NumPy实现耗时:约0. 26秒
Mojo实现耗时:仅0. 01秒

尽管这一benchmark并非最优算法,但结果仍然具备参考价值:在这种纯CPU密集型的计算任务中,Mojo的性能提升确实相当明显,尤其是与NumPy相比也有数量级上的优势。
写在最后
整体而言,通过实测,Vincent发现,Mojo的语法风格延续了Python的简洁性,同时具备编译语言的性能与类型系统。
不过,Mojo当前仍处于早期阶段。文档覆盖不全、标准库功能有限、整套开发体验尚不稳定……这也意味着距离“生产可用”还有距离。
但从Modular的近期动作可以看出,该团队正在有意识地为Python社区打造“融合路径”——不是简单地“替代Python”,而是围绕其生态做加速和增强。这种“拥抱兼容”的姿态或许更务实,也更容易获得社区的接纳。
对此,Vincent评价道,「现在还不能称得上“生产可用”,但我已经更有信心了——梦想确实正在靠近。」
原文:https ://koaning. io/posts/giving-mojo-a-spin/
好啦,今天的内容分享就到这,感觉不错的同学记得分享点赞哦!
PS:程序员好物馆持续分享程序员学习、面试相关干货,不见不散!
点分享
点收藏
点点赞
点在看


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录