您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > 百科

Mojo比Python快35000倍?这门新语言想搞个大新闻!

时间:2023-05-15 15:01:07  来源:51CTO  作者:

撰稿丨千山

 

AI 领域,Python/ target=_blank class=infotextkey>Python无疑是最流行的编程语言。而且从近年的TIOBE排行榜来看,这种地位一时还很难撼动。不过在编程语言界,后浪总是层出不穷,不停地向前浪发起冲击。

 

最近,一家初创公司Modular AI推出了一种名为Mojo的编程语言,声称结合了Python的易用性和C语言的性能,旨在成为Python的超集。一些基准测试显示,Mojo比Python快 35000 倍。

 

这种语言是专门为在 GPU 等 AI 硬件上编程、运行 CUDA 和其他加速器而设计的。通过内置的自动调优,Mojo针对目标硬件优化代码,提升性能。“解锁AI 硬件无与伦比的可编程性和 AI 模型的可扩展性”是开发团队对于Mojo的发展期待。

 

 

图片

 

图源:推特

 

值得一提的是,这家公司的首席执行官Chris Lattner也是个神人。这位大神是Swift编程语言的作者,参与了LLVM编译器工具链的共同开发,而且和苹果、谷歌、特斯拉都渊源颇深。

 

那么Mojo到是否值得期待?新语言到底能否对老牌语言形成冲击?那些小众语言发展现状如何?下文将逐一道来。

一、开始搞事!褒贬不一的Mojo

 

有很多正在进行的项目可以使Python更快,比如在机器学习领域崭露头角的Jax,还有出现不久的Python高性能编译器Codon。

 

与这些相区别的是,Mojo的开发团队指出,他们想要的是一个创新的可扩展的编程模型,并且可以支持加速器和其他机器学习中普遍存在的异构系统。

 

通过利用多层级通用编译器MLIR,Mojo代码可以访问各种AI调优的硬件功能,例如TensorCore和AMX扩展。因此,对于某些类型的算法,它比 Python 快得多。

 

同样是在 AWS r0iz.metal-03xl 上运行Mandelbrot算法,Python3需要17分钟,而Mojo只要0.03秒。

 

目前Mojo仍在开发中,开发者现在可以率先在 Modular AI 基于 JupyterHub 的 Playground 中试用。

 

关于Mojo的定位和特性,有必要了解以下几点:

 

1、Python的超集:Mojo是Python的超集,这意味着你不需要学习一门全新的语言来利用它的好处。如果你已经精通Python,你可以很容易地过渡到Mojo Lang。

 

2、强类型检查:该语言添加了强大的类型检查,这对于优化性能和内存管理的错误检查至关重要。此功能允许开发人员编写更安全、更高效的代码。

 

3、所有权系统和借用检查器:Mojo包括一个所有权系统和类似于 Rust 的借用检查器,以及支持带有C++等指针的手动内存管理。这为开发人员提供了对内存使用情况的更多控制,从而优化了代码。

 

4、未来的开源版本:虽然Mojo Lang目前不向公众开放,但它将来会开源。这将使开发人员能够为语言的发展做出贡献,并从社区的集体知识中受益。

 

Fast.ai 联合创始人、数据科学家杰里米·霍华德表示:“Mojo可能是几十年来最大的编程语言进步。”虽然“Mojo还没有完成”,而且它是由“一个非常小的团队在很短的时间内创建的”,但是发起者Lattner有LLVM和Swift的开发经验,当下的进展“已经很让人振奋”。

 

有人表示期待,自然也有人表示质疑。

 

首先,炮火就集中在了那个惊人的“比Python快35000倍”上。有网友认为这就是个噱头,而且在形形色色的编程语言中Python的性能基本都处于末流,就像“跟班上常年垫底的人作比较,没有太大意义”。

 

再者,这个语言的前景再牛,等到成熟的时候少说还需要十几年沉淀,变数太多。而且早年也曾有Julia会替代Python的说法,结果就是打脸。

 

不止于Python,这些年试图向C++、JAVA等语言挑战的新生代层出不穷,无一例外均是中途折戟。在编程语言界,“长江后浪推前浪”很罕见,“你爸爸永远是你爸爸”却似乎是常态。

二、5月排行榜速览:老将活力依旧,新兵难挑大梁

 

上述结论在Tiobe发布的五月编程语言排行榜又得到了力证。

 

纵览排行榜,前四的语言并没有太多意外。Python占据榜首,紧随其后的是C和Java。C++虽然屈居第四,但其3.13%的增幅依然领先于其他语言,展现出了不容忽视的姿态。

 

正如TIOBE Software 首席执行官Paul Jansen所说,“编程语言的流行是相当稳定的”。在榜的前10种编程语言,最年轻的是C#,而C# 始于 2000 年,那也已经是23年前了。

 

新的编程语言如过江之鲫,但几乎没有一种能进入前100名。

 

在目前的前100名中,诞生不足十年的语言只有8种:Swift(#14),Rust(#17),Crystal(#48),Solidity(#59),Pony(#71),Raku(#72),Zig(#88)和Hack(#92)。而且这些新生代“佼佼者”的发展时间均不低于5年。

 

另外,值得一提的是排名第19位的Fortran。作为一门上世纪的科学计算语言,Fortran早已不在主流之列,甚至有很多人都没怎么接触过。但由于近来对数值计算能力的需求不断增长,Fortran又有了回暖之势。如今这个“古董”再次于跻身榜单前二十,不啻于焕发新生。

 

 

图片

 

图源:Tiobe

 

在编程语言的流行度评测中,新生代难挑大梁的现象并非偶然。

 

不久前,技术面试和评估平台CodeSignal进行了一项调查 —— 2023 State of Engineer Hiring Survey,以期对对当今技术招聘的全行业趋势进行统筹分析。调查面向的开发者包括前端、后端、全栈、数据科学家、数据工程师。

 

在2696名受访者中,有78%的受访者将 Python 3 列为他们经常使用的编程语言之一,这也与 TIOBE 榜单的排名保持了一致。在所有岗位中,除了前端最常用的编程语言是 JavaScript/NodeJS(82.9%),其余的职位都将 Python 3 列为最主要使用的编程语言。

 

而且除了 Python 3,开发者青睐的常用语言普遍都是耳熟能详的老牌编程语言,诸如TypeScript这样的后起之秀尽管有微软这个亲爸爸的加持,存在感还是相对薄弱。

 

 

图片

 

图源:CodeSignal

 

不过在薪酬表现上,收入最高的编程语言却并不一定是最受欢迎的那一拨。按年薪中位数来看,第一梯队里既有 Python 3,也有流行度不那么高的TypeScript、React 和 Bash。

 

 

图片

 

图源:CodeSignal

 

从上述统计来看,相较于掌握Java、C、C++ 等老牌编程语言的开发者,使用TypeScript 、React 等新兴编程语言的开发者收入更高。

 

由此可见,新兴语言在生态上肯定无法与老牌语言抗衡,但在一些特定需求中,反而会因为“奇货可居”而获得更高回报。

三、盘点:值得关注的小众语言

 

新语言成长起来前,注定会作为小众群体进入大众视野,也不怪Mojo的报道下面有不少人都在期待之余保持了冷静——“可能有点东西,但还是过十年再说吧”,前景如何说到底还是要耐心等待。

 

不过,语言界的新生一辈中也不乏令人惊艳的“天选之子”,我们可以梳理出几个典型。

1.Swift:来自苹果的“天骄”

 

Swift是一种由苹果公司开发的编程语言,最早于2014年苹果全球开发者大会(WWDC)上亮相。它主要用于开发IOSmacOS、watchOS和tvOS应用程序。2020年,这门兼顾简洁、性能和优美的语言就在TIOBE 编程语言排行榜上闯入前十之列,收获了远超预期的欢迎。

 

Swift 能如此快地普及,除了有苹果公司的背书外,也在于它借鉴了很多其他优秀编程语言的特性,其现代化的语法和强大的类型系统,可以提高代码的可读性和可维护性。此外,Swift 对于苹果应用的开发者而言同样意义重大。Swift出现后,开发者在 Objective-C 之外,终于有了第二种选择。

 

Swift 的作者,也就是我们前文提到的Lattner,考虑到Objective-C 毕竟是一门脱胎于 C 的老牌编程语言,无论怎么优化,它身上总是有 C 语言自身的缺陷,语法上也不够现代。不如另辟炉灶,开发一门新的易学易用的语言,如今看来,Swift 虽然没有做到完美,但随着它日趋成熟,在编程语言界也占据了不可小觑的一席之地。

2.Rust:被众多大厂看好的“好学生”

 

在本月的TIOBE排行榜中,Rust位列17,较上月又上升了两个位次,可以说是稳步发展中。Rust 最早是由Mozilla 员工 Graydon Hoare 在 2006 年创建的一个业余项目。2015 年,Mozilla 发布了 Rust 的首个稳定版本 v1.0 ,才让Rust引起了业内的广泛关注,尤其令人印象深刻的是其内存安全性。

 

2021年,Mozilla 联合微软、谷歌、AWS、华为四大技术厂商创立 Rust 基金会的消息成为社区热门话题,也让 Rust热持续升温。有了这么多好爸爸,“中途夭折”这种命运估计也不会落到Rust头上了。

 

作为一门系统编程语言,Rust相较C++来说,更安全也更快速。因为能在编译时检查出几乎所有安全问题,比如内存泄漏、分段错误、二次释放等;性能上也优于C++,接近于 C 的性能。不过Rust的缺点也很鲜明,比如编译器检查更为严格,学习曲线更为陡峭。

 

最近Rust的新闻不少,微软正在用 Rust 编程语言重写核心 windows 库,这也是微软近年来探索使用 Rust 作为 C、C++ 替代方案的举措之一。另外在 AWS的资金支持下,sudo 和 su 命令正在用 Rust 重写,以提高这些广泛依赖的软件的内存安全。

 

不过一切向好的发展大势下依旧存有隐忧,更广的市场渗透率、更好的平台支持、更高的生产力才是用户的追求,而目前来看,Rust 要做到这些尚需时日。

3.Zig:一切皆有可能的“黑马”

 

诞生于 2016 年的Zig被视为C语言的有力竞争者,在5月的Tiobe编程语言排行榜上名列第88位。但在上个月的榜单中,Zig曾一下蹿升到第46位。起起落落间,已经有了点出其不意的黑马之姿。

 

Zig出现后就处在了C语言的挑战位,也有人认为其有望成为C语言的替代品。它保有C语言的部分功能特性,同时也舍去了其中不太理想的一些功能设计。

 

Zig和C语言一样是通过手动管理内存的;Zig兼容C语言,可以导入 .h 头文件并直接使用 C 语言的类型、变量和函数,但是减少了很多冗余,增加了泛型数据结构和函数;Zig通过协程实现并发,相比C语言的多进程和多线程更加高效。

 

在语法上,Zig最大的创新是编译期值和编译期函数。简言之,你可以写一些函数是在编译期运行的,这些函数能够通过编译器反射获取很多元信息,然后通过这些元信息生成真正的运行函数或者类型。

 

曾有人对Zig语言的设计者Andrew Kelley 表示,在编译时运行代码是个蠢主意。不过Kelley 还是坚持了这一想法,多年以后,这个看着不怎么聪明的点子成为了 Zig 最鲜明的招牌。Zig 可以在编译时运行代码的能力让开发者们可以在不明确任何泛型或模板支撑的情况下,编写通用代码或是进行元编程。

 

此外,Zig另外一个重要的特色就是对嵌入式领域和系统级编程的支持,这也是其将自己定位成C语言竞争者的原因之一。Zig的交叉编译工具做得非常极致,在非常小的编译器工具中内置了非常多系统的交叉编译支持。目前来看,Zig要取代C语言还太过稚嫩,但至少它提供了一种让人耳目一新的可能。

四、结语

 

编程语言无论是大众还是小众,并没有绝对的优劣之分。无论使用哪种或哪些编程语言,真正的关键从不在于语言的种类,而在于编码的技能水平。就像Pony语言的创建者Sylvan Clebsch所说,“一门编程语言只是另一种工具。与语法无关,与表达性无关,与范式或模型无关,仅与解决难题有关。”

 

参考链接:

https://www.tiobe.com/tiobe-index/

https://codesignal.com/2023-state-of-engineer-hiring/

www.modular.com/mojo

https://medium.com/@napsaga/mojo-lang-a-fast-futuristic-python-alternative-cf090e6db344



Tags:Mojo   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
AI 编程语言 Mojo 登陆 Mac 平台
10 月 20 日消息,Mojo 编程语言近日登陆 Mac 平台,为 AI 开发人员带来类似于 Python 的编程体验。Mojo 编程语言的开发工作由 Chris Lattner 领导,他同时也是苹果 Swift 编程语...【详细内容】
2023-11-20  Search: Mojo  点击:(142)  评论:(0)  加入收藏
llama2.mojo比llama2.c快20%,最年轻的语言Mojo惊艳开发者社区
机器之心报道编辑:梓文你听说过 Mojo 的「传奇色彩」吗?如果说 Python 是最流行的语言,C 语言是最经典的语言,那么 Mojo 也有它的之最 —— 最年轻。Mojo 能够与 Pyth...【详细内容】
2023-09-13  Search: Mojo  点击:(235)  评论:(0)  加入收藏
比C语言还快20%!Mojo首个大模型开放下载,性能达Python版250倍
明敏 发自 凹非寺量子位 公众号 | QbitAI专为AI而来的新语言Mojo,推理LLaMA2性能比Python提升250倍!比C语言也要快上20%。上周五才开放下载,Mojo这么快就自证实力了。要知道,之...【详细内容】
2023-09-13  Search: Mojo  点击:(363)  评论:(0)  加入收藏
吊打Python!Mojo语言首探!
作者 | Serdar Yegulalp策划 | 云昭Mojo很狂!它的目标非常有野心:“与Python一样易于使用,但与Rust一样强大和快速。”新推出的Mojo语言,被宣传为多个领域中最好的:Python的易用...【详细内容】
2023-06-09  Search: Mojo  点击:(254)  评论:(0)  加入收藏
Mojo比Python快35000倍?这门新语言想搞个大新闻!
撰稿丨千山 在AI 领域,Python无疑是最流行的编程语言。而且从近年的TIOBE排行榜来看,这种地位一时还很难撼动。不过在编程语言界,后浪总是层出不穷,不停地向前浪发起冲击。 最近...【详细内容】
2023-05-15  Search: Mojo  点击:(388)  评论:(0)  加入收藏
编译器大神 Chris Lattner 官宣新编程语言:Mojo,比 Python 快 35000 倍!
整理 | 王子彧 责编 | 张红月出品 | CSDN(ID:CSDNnews)说起 Chris Lattner,大家一定不陌生。这位编译器大神,曾经领导了众多大型技术项目。他不仅是 LLVM 项目的主要发起人,还是 C...【详细内容】
2023-05-04  Search: Mojo  点击:(283)  评论:(0)  加入收藏
▌简易百科推荐
用于人工智能开发的主流编程语言都有哪些?
在人工智能开发领域,编程语言的选择至关重要。目前,主流的编程语言主要包括Python、Java、C++、JavaScript和Swift等。这些语言各具特色,适用于不同的人工智能开发场景。首先,Py...【详细内容】
2024-01-31    简易百科  Tags:编程语言   点击:(132)  评论:(0)  加入收藏
探究微处理器开发中的汇编语言的优势与挑战
在计算机编程中,汇编语言是一种低级语言,它可以直接控制计算机的硬件资源。与高级语言相比,汇编语言具有更高的运行效率和更好的控制能力,但同时也更加复杂和难以理解和维护。在...【详细内容】
2023-12-19  松鼠宝贝    Tags:汇编语言   点击:(99)  评论:(0)  加入收藏
选择适合微服务的编程语言,让你的工作事半功倍!
讨论编程语言就像是一场政治辩论。每个开发者都会过分捍卫他/她所使用的编程语言。然而,编程语言应该被看作是它们真正是的东西,即一种工作工具。每种编程语言都有特定的目的...【详细内容】
2023-12-14  爱发白日梦的后端  微信公众号  Tags:编程语言   点击:(178)  评论:(0)  加入收藏
编程语言大比拼:Python、Java、C、C++、Go 实现 'Hello World' 和九九乘法表"
应该90%的IT专业的朋友写的第一段代码就是打印"holle world",每个大学老师都会通过这个方式吸引你对课程产生兴趣。也许有的朋友学的是JAVA开发,有的学的是c,在几年前应该很...【详细内容】
2023-12-11  IT仔的笔记本  微信公众号  Tags:编程语言   点击:(216)  评论:(0)  加入收藏
TypeScript中的null和undefined的区别
在TypeScript中,null和undefined是两个特殊的值,用于表示变量的缺失或未定义。尽管它们在某些情况下可能看起来相似,并且都可以表示"没有值",但它们在语义和用法上存在一些重要...【详细内容】
2023-12-07  科学随想录  微信公众号  Tags:TypeScript   点击:(135)  评论:(0)  加入收藏
面向AI开发的六种最重要的编程语言
作者丨FATIH KÜÇÜKKARAKURT 译者 | 布加迪审校 | 重楼出品 | 51CTO技术栈(微信号:blog51cto)在AI开发界,你使用的编程语言很重要。每种语言有其独特...【详细内容】
2023-12-07    51CTO  Tags:编程语言   点击:(121)  评论:(0)  加入收藏
NLP问题实战:基于LSTM(RNN)和Transformer模型
译者 | 朱先忠审校 | 重楼简介GPT等语言模型最近变得非常流行,并被应用于各种文本生成任务,例如在ChatGPT或其他会话人工智能系统中。通常,这些语言模型规模巨大,经常使用超过数...【详细内容】
2023-11-29    51CTO  Tags:NLP   点击:(273)  评论:(0)  加入收藏
一文了解低级和高级编程语言
中文是一种尽量用简短文字表达更多含义的语言,所以很多时候一句话的含义很容易曲解成别的意思。最近,有人提出C语言是一种中级语言的概念,所以特意介绍一下低级语言和高级语言...【详细内容】
2023-11-23  数字随行  微信公众号  Tags:编程语言   点击:(232)  评论:(0)  加入收藏
JetBrains 发布 2023 调研报告:77% 开发者使用 ChatGPT
IT之家 11 月 21 日消息,JetBrains 日前公布了《2023 开发人员生态系统现状》调研报告,汇集了来自全球 26,348 位开发者的调研结果。《开发者生态系统现状报告》涵盖广泛的主...【详细内容】
2023-11-21    IT之家  Tags:JetBrains   点击:(238)  评论:(0)  加入收藏
Go vs Rust:文件上传性能比较
一、设置所有测试都在配备16G内存的 MacBook Pro M1 上执行。软件版本为: Go v1.20.5 Rust v1.70.0测试工具是一个基于 libcurl 并使用标准线程的自定义工具,能够发送多部分请...【详细内容】
2023-11-20  技术的游戏  微信公众号  Tags:Rust   点击:(174)  评论:(0)  加入收藏
站内最新
站内热门
站内头条