我的编程空间,编程开发者的网络收藏夹
学习永远不晚

试图替代 Python 的下一代AI编程语言:Mojo

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

试图替代 Python 的下一代AI编程语言:Mojo

在这里插入图片描述

文章目录


Mojo 是一种创新的编程语言,结合了 Python 的可用性和 C 的性能。它旨在成为人工智能 (AI) 开发的首选语言,因为它允许开发人员编写既快速又易于阅读的代码。
这里有一些关键点,
  • Modular 是一种新的编程语言,旨在应对整个 AI 堆栈的编程挑战。
  • Mojo 旨在成为一种创新且可扩展的编程模型,可以针对加速器和其他异构系统。
  • Mojo 建立在 Python 生态系统之上,这使其广泛可用且易于使用。

为什么叫 Mojo ?

Mojo 的意思是“神奇的魅力”或“神奇的力量”。这个名字很适合为 Python 带来神奇力量的语言,包括用于加速器和 AI 中无处不在的其他异构系统的创新编程模型。

Python 家族的一员,Mojo

Mojo 是一种新的编程语言,旨在与 Python 生态系统完全兼容。

  • 将提供可预测的低级性能和低级控制。
  • 将允许开发人员将代码子集部署到加速器。
  • 不会创建一个支离破碎的软件生态系统。
  • 将从其他语言的经验教训中受益。
  • 将成为 Python 的超集,并将与现有的 Python 程序兼容。
  • 将提供新工具来开发安全和高性能的系统级代码。
  • 将允许开发人员在静态类型和动态类型之间进行选择。

Python 的好处:

在这里插入图片描述
Python 是 ML 和无数其他领域的主导力量。

Python 易于学习,被重要的程序员群体所熟知,拥有令人惊叹的社区,拥有大量有价值的软件包,并且拥有各种各样的好工具。

Python 通过其动态编程特性支持开发美观且富有表现力的 API。

TensorFlow 和 PyTorch 等机器学习框架采用 Python 作为其用 C++ 实现的高性能运行时的前端。

对于 Modular,Python 是其 API 表面堆栈中不可或缺的部分。

模块化团队希望 Python 生态系统中的人们看到他们的 Mojo 目标是将 Python 提升到一个新的水平——完成它——而不是与之竞争。

Python 兼容性

Mojo 旨在与 Python 生态系统完全兼容。兼容性有两种类型:导入兼容性和迁移兼容性。

Mojo 与 Python 100% 导入兼容,因为它使用 CPython 实现互操作性。但 Mojo 尚未完全与 Python 兼容。

就 Python 和 Mojo 而言,Mojo 期望直接与 CPython 运行时合作,并具有与 CPython 类和对象集成的类似支持,而无需自行编译代码。

这提供了与现有代码的庞大生态系统的插件兼容性,并且它支持渐进式迁移方法,在该方法中,向 Mojo 的增量迁移会产生增量收益。

Python 的问题

Python 有一些众所周知的问题,包括糟糕的底层性能和全局解释器锁 (GIL),这使得 Python 成为单线程的。这些问题在通常需要高性能和多线程能力的 AI 领域影响尤其大。
解决这些问题的一种方法是使用混合库,它们是使用 Python 和 C/C++ 的组合构建的。但是,构建混合库很复杂,需要 Python 和 C/C++ 的知识。这会使大型框架的发展变得困难,并可能导致可用性问题。
此外,必须同时处理 Python 和 C/C++ 代码的两个世界问题可能会导致难以使用调试器和其他工具。这对于 AI 开发人员来说尤其成问题,他们经常需要使用像 CUDA(计算统一设备架构)这样的加速器。
在这里插入图片描述

CUDA(计算统一设备架构)是一种定制的编程语言,有其自身的特殊问题和局限性。

AI 世界在硬件方面有大量的创新,因此,复杂性正在失控。现在有几种尝试为加速器(OpenCL、Sycl、OneAPI 等)构建有限的编程系统。
然而,这些系统都没有解决工具和生态系统中严重损害行业的基本碎片化问题。
Mojo 旨在通过提供一种可用于系统编程和 AI 开发的统一语言来解决这些问题。
Mojo 仍在开发中,但它有可能彻底改变人工智能行业。

移动和服务器部署:

Python 生态系统的另一个挑战是部署。这有很多方面,包括如何控制依赖关系、如何部署密封编译的“a.out”文件以及如何提高多线程和性能。

Python 子集和其他类似 Python 的语言:

已经有很多构建可部署 Python 的尝试,例如 PyTorch 项目中的 TorchScript。
在这里插入图片描述
这些语言很有用,因为它们通常提供低依赖性部署解决方案,有时还具有高性能。它们使用类似 Python 的语法,这使得它们比一门新语言更容易学习。
但是,这些语言并未得到广泛采用,因为它们:

  • 不与 Python 生态系统互操作
  • 没有出色的工具(例如调试器)
  • 单方面更改 Python 中不方便的行为,这会破坏兼容性并进一步分割生态系统

这些方法的挑战在于它们试图解决 Python 的一个弱点,但它们在 Python 的强项上并不擅长。
充其量,它们可以提供 C 和 C++ 的新替代方案,但如果不解决 Python 的动态用例,它们就无法解决“两个世界问题”。
这种方法导致碎片化,不兼容性使迁移变得困难甚至不可能。

来源地址:https://blog.csdn.net/m0_73728511/article/details/132796485

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

试图替代 Python 的下一代AI编程语言:Mojo

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node.js 和 C 的未来前景:展望下一代编程语言的绽放

Node.js 和 C 都是备受推崇的编程语言,它们在各自领域都取得了巨大的成功。展望未来,Node.js 和 C 将继续蓬勃发展,并且有望在下一代编程语言中占据一席之地。
Node.js 和 C 的未来前景:展望下一代编程语言的绽放
2024-02-13

PHP8的发展方向及其影响:探索下一代编程语言的意义

PHP8的意义与影响:探索新一代编程语言的发展方向,需要具体代码示例近年来,随着信息技术的迅猛发展,编程语言也在不断演变。作为一种广泛应用于Web开发的语言,PHP在其近期的更新版本中迎来了一系列重大变革。PHP8的发布引发了广泛的关注,
PHP8的发展方向及其影响:探索下一代编程语言的意义
2024-01-26

PHP8对互联网行业的预测:探索下一代编程语言的影响力

PHP8的未来展望:预测新一代编程语言对互联网行业的影响总结:PHP8将是PHP编程语言的下一个版本,并预计在未来几年中发布。它将带来许多新的功能和改进,预计对互联网行业的影响将是巨大的。本文将讨论一些预测,以及PHP8如何在互联网行业
PHP8对互联网行业的预测:探索下一代编程语言的影响力
2024-01-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录