Python的未来已经出现,它被称为Mojo Lang!

Python的未来已经出现,它被称为Mojo Lang!

科技爱好者们,系好安全带!是时候在编程语言的舞台上引入一种新的竞争者了——Mojo Lang

如果你想了解更多关于编程语言的相关内容,可以阅读以下这些文章:
Mojo:比Python快35000倍的AI编程语言
框架为数据科学家带来哪些编程语言所不能带来的优势
每个数据科学家都应该知道的12个Python特性!
Python简化:使用ChatGPT进行数据可视化注释

你们大多数人可能会想,我应该从头开始学习一门新的编程语言吗?好消息还不止于此——如果你了解Python,那么你也了解Mojo Lang的大部分内容!

这种创新的语言将Python的可用性和C语言的性能独特地结合在一起,在科技行业掀起了一股热潮。这意味着它拥有Python的能力和C的速度(35000倍!)

听起来有趣吗?让我们一起探索它!

正当我们以为科技界不会再有惊喜时,一种新的计算机语言出现了,这种新语言建立在Python之上。Python仍然是世界上使用最多的语言之一,因为它能够使用简单而清晰的语法创建复杂的应用程序。

简单地说,Python使创建复杂的计算机程序变得容易,但这里有一个巨大的挑战。

Python虽然常用且简单,但在速度方面可能令人失望。对于更快的解决方案,程序员通常更喜欢C、Rust或C++等语言。

如果你在处理复杂项目时一直在与Python的慢节奏作斗争,那么Mojo Lang可能是你一直希望的游戏规则改变者。

当你编写计算机程序时,速度是非常重要的。那么,我们能因为Python太容易使用而忽略它的慢吗?遗憾的是,我们不能。

这就是Mojo Lang的用武之地!

Mojo Lang是什么?

Mojo Lang被设计为Python的超集,是Swift编程语言和LLVM编译器基础设施的创造者Chris Latner的创意。

Mojo Lang试图通过提供卓越的速度和性能来弥合这一差距,同时又不牺牲Python的熟悉性和易用性。

Mojo Lang背后的秘密武器是它使用了MLIR,这允许它在不增加复杂性的情况下扩展到各种硬件类型。

为什么要创造Mojo Lang?

Python本身并不能处理现实世界中人工智能系统所面临的所有挑战。

这种能力上的差距导致了“两个世界问题”的概念。

正如Mojo文档所述:

由于各种原因,Python不适合系统编程。幸运的是,Python作为粘合层具有惊人的优势,并且允许调用C和C++的库。

不幸的是,虽然这种方法是构建高性能Python库的有效方法,但它有一个代价:构建这些混合库非常复杂。

这使得Mojo Lang非常适合在AI硬件上编程,比如运行CUDA的GPU。

此外,它以惊人的速度超过了Python及其同类产品,Mojo Lang的速度比Python快35000倍!

但是,Python爱好者们不用担心!

Mojo Lang不需要你放弃Python技能。作为Python的超集,Mojo Lang与Python完全兼容,并允许你与Python生态系统无缝交互。

这意味着你可以继续利用Python库,如NumPy,Pandas或TensorFlow,同时享受Mojo Lang的额外好处。

Mojo Lang包含了增强性能和错误检查的特性。

Mojo Lang的主要功能

1 支持强类型检查

该语言还包括var、let等关键字,并将def替换为fn以实现更严格的函数定义。它利用类型来获得更好的性能和错误检查。

Mojo文档截图

虽然Mojo仍然允许使用类似于Python的灵活类型,但它引入了严格类型检查的选项。这增强了代码的可预测性、可管理性和安全性。

2 并行计算

Mojo允许你直接将值分配到结构体中,从而在不产生任何额外成本的情况下对存储进行更多控制。

再加上并行处理和平铺优化工具,这些微小的变化可以极大地提高编码性能。

由于多级中间表示(mlr),使用Mojo的开发人员可以利用向量、线程和AI硬件单元的力量。

这种能力使Mojo在性能上具有优势,因为它可以同时跨多个核心处理任务,而不像Python在单线程执行中操作。

Mojo文档截图

这个关键的区别就是Mojo比Python快35000倍的部分原因。

3 Onwership和borrower checker

Mojo提供了内存安全的好处,而没有任何并发症。Python和Mojo通过在函数调用中传递参数来处理内存所有权。

Python的def函数使用引用语义,允许对函数内部的可变对象进行修改,这些对象在函数外部可见。

Mojo的def函数使用值语义,接收所有参数的副本,修改在外部不可见。

Mojo的fn函数使用不可变引用,允许读取原始对象,但不能修改,这在Mojo中被称为借用。

它包含了一个自有参数约定,当函数需要对值进行独占控制时使用。

Mojo文档截图

这个特性使内存处理更加流畅和安全。

4 Auto-tuning

Mojo参数表达式允许创建可移植的参数算法,类似于其他语言。

然而,对于高性能代码,仍然必须选择具体的值。

Mojo文档截图

Mojo提供自动调整功能,它允许你自动找到参数的最佳值。

如果你想进一步了解Mojo Lang,可以看看这个视频:https://youtu.be/6GvB5lZJqcE

不幸的是,Mojo Lang还没有公开,因为它仍在开发中。但是,将来会发布一个开源版本。

想尝试它的人,可以加入等候名单https://www.modular.com/get-started,并在它可用时成为第一批体验这种新语言功能的人之一。

总之,Mojo Lang承诺将通过以下方式彻底改变编程世界:

  1. Python的兼容性
  2. 高性能
  3. AI-focused设计

它不仅仅是Python++——它是一种新的编程方法,可能会改变我们开发人工智能应用程序的方式。

当我们等待它的公开发布时,人们不禁会思考……

Mojo Lang会完全转化Python用户吗?还是会作为Python更快的“表亲”共存?

只有时间才能证明……

感谢阅读,如果你有任何进一步的问题,或者你知道任何其他扩展,请随时发表评论!你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Josep Ferrer
翻译作者:过儿
美工编辑:过儿
校对审稿:Chuang
原文链接:https://medium.com/geekculture/future-python-exists-mojo-lang-ai-artificial-intelligence-software-developement-e94e47c21b6b