Skip to content

Latest commit

 

History

History
101 lines (51 loc) · 6.02 KB

mojo-lang-new-programming-language.md

File metadata and controls

101 lines (51 loc) · 6.02 KB

Mojo Lang:新编程语言

原文:www.kdnuggets.com/2023/05/mojo-lang-new-programming-language.html

Mojo Lang:新编程语言

图片由作者提供

就在我们以为科技行业无法再出现更多震荡时,欢迎这门作为 Python 编程语言的超集设计的新编程语言。


我们的前三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业生涯

2. Google 数据分析专业证书 - 提升你的数据分析能力

3. Google IT 支持专业证书 - 支持你组织的 IT


Python 仍然是最受欢迎的编程语言之一,因为它能够使用简单易读的语法创建复杂的应用程序。然而,如果你使用 Python,你就会知道它最大的问题是速度。速度是编程的重要元素,那么 Python 在简单语法下创造复杂应用的强大能力是否会忽略它的速度不足呢?不幸的是,不会。

还有其他编程语言,如 C 或 C++,它们的速度惊人,相比 Python 性能更高。虽然 Python 是最广泛使用的 AI 编程语言,但如果你追求速度,大多数人会选择 C、Rust 或 C++。

但这一切可能会改变,欢迎新编程语言 Mojo Lang

Mojo Lang 是什么?

Mojo Lang 的创始人 Chris Latner,是 Swift 编程语言和 LLVM 编译器基础设施 的创始人,他将 Python 的易用性与 C 编程语言的性能相结合。这为所有 AI 开发人员解锁了新的编程层次,具有无与伦比的 AI 硬件可编程性和 AI 模型的扩展性。

相比 Python,PyPy 快 ??22 倍,Scalar C++ 快 5000 倍,而 Mojo Lang 快 35000 倍。

Mojo Lang 是一种为 AI 硬件(如运行 CUDA 的 GPU)编程而设计的语言。它通过使用多级中间表示(MLIR)来扩展硬件类型,而不增加复杂性。

Mojo Lang 是 Python 的超集,这意味着它不需要你学习一种新的编程语言。方便吧?基础语言与 Python 完全兼容,允许你与 Python 生态系统互动,并利用诸如 NumPy 的库。

Mojo Lang 的其他特点包括:

  • 利用类型以获得更好的性能和错误检查。

  • 通过将值内联分配到结构中,零成本抽象来控制存储。

  • 所有权和借用检查器,通过利用内存安全性而不留粗糙边缘。

  • 自动调优,允许你自动找到参数的最佳值。

Mojo Lang 和 Python 的区别

Mojo Lang 和 Python 非常相似,但一定还是有一些区别,对吧?

是的,我们已经指出两者之间最大的区别是速度。但还有一些其他的区别。

添加类型

Mojo Lang 有一个内置的 struct 关键字,类似于 Python 的类。区别在于 struct 是静态的,而 class 是动态的。

在 struct 中,Mojo Lang 有像 var 这样的关键字,它是可变的,还有 let,它是不可变的。我们在 Python 中知道的 def 定义了一个函数,在 Mojo Lang 中,def 被替换为更严格的 fn。

它还可以包括 SIMD,即单指令多数据,这是一种内置类型,表示一个向量,在底层硬件上可以对多个元素同时执行单个指令。

将 struct 作为一种类型,并在 Python 实现中使用它,可以将性能提高 500 倍。

并行计算

Mojo Lang 具有内置的并行化功能,可以使你的代码支持多线程,从而提高速度 2000 倍。Python 中没有并行处理,并且实现起来可能非常复杂。

瓷砖优化

Mojo 具有内置的瓷砖优化工具,允许你更有效地缓存和重用数据。你可以在同一时间使用接近的内存,并进行重用。

自动调整

Mojo Lang 允许你自动调优代码,帮助你自动找到目标硬件的最佳参数。

Mojo Lang 还有更多功能,要了解其工作原理,请观看这个由 Jeremy Howard 演示的 Mojo 演示:

我现在可以使用 Mojo Lang 吗?

不幸的是,Mojo Lang 目前还不对公众开放,它仍处于早期开发阶段。然而,未来它会开源,你可以在 等待名单中尝试 Mojo Lang

总结一下

你已经对新的 Mojo Lang 编程语言及其特点有所了解。Mojo Lang 是不是只是 Python++,还是说它会完全取代所有 Python 用户?

妮莎·阿里亚 是一名数据科学家、自由技术作家以及 KDnuggets 的社区经理。她特别关注提供数据科学职业建议或教程,以及围绕数据科学的理论知识。她还希望探索人工智能如何有助于人类寿命的延续。她是一位热衷学习的个人,寻求拓宽技术知识和写作技能,同时帮助指导他人。

更多相关主题