新聞中心
撰稿丨千山

公司主營(yíng)業(yè)務(wù):做網(wǎng)站、成都做網(wǎng)站、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出善左免費(fèi)做網(wǎng)站回饋大家。
在AI 領(lǐng)域,Python無疑是最流行的編程語(yǔ)言。而且從近年的TIOBE排行榜來看,這種地位一時(shí)還很難撼動(dòng)。不過在編程語(yǔ)言界,后浪總是層出不窮,不停地向前浪發(fā)起沖擊。
最近,一家初創(chuàng)公司Modular AI推出了一種名為Mojo的編程語(yǔ)言,聲稱結(jié)合了Python的易用性和C語(yǔ)言的性能,旨在成為Python的超集。一些基準(zhǔn)測(cè)試顯示,Mojo比Python快 35000 倍。
這種語(yǔ)言是專門為在 GPU 等 AI 硬件上編程、運(yùn)行 CUDA 和其他加速器而設(shè)計(jì)的。通過內(nèi)置的自動(dòng)調(diào)優(yōu),Mojo針對(duì)目標(biāo)硬件優(yōu)化代碼,提升性能?!敖怄iAI 硬件無與倫比的可編程性和 AI 模型的可擴(kuò)展性”是開發(fā)團(tuán)隊(duì)對(duì)于Mojo的發(fā)展期待。
圖源:推特
值得一提的是,這家公司的首席執(zhí)行官Chris Lattner也是個(gè)神人。這位大神是Swift編程語(yǔ)言的作者,參與了LLVM編譯器工具鏈的共同開發(fā),而且和蘋果、谷歌、特斯拉都淵源頗深。
那么Mojo到是否值得期待?新語(yǔ)言到底能否對(duì)老牌語(yǔ)言形成沖擊?那些小眾語(yǔ)言發(fā)展現(xiàn)狀如何?下文將逐一道來。
一、開始搞事!褒貶不一的Mojo
有很多正在進(jìn)行的項(xiàng)目可以使Python更快,比如在機(jī)器學(xué)習(xí)領(lǐng)域嶄露頭角的Jax,還有出現(xiàn)不久的Python高性能編譯器Codon。
與這些相區(qū)別的是,Mojo的開發(fā)團(tuán)隊(duì)指出,他們想要的是一個(gè)創(chuàng)新的可擴(kuò)展的編程模型,并且可以支持加速器和其他機(jī)器學(xué)習(xí)中普遍存在的異構(gòu)系統(tǒng)。
通過利用多層級(jí)通用編譯器MLIR,Mojo代碼可以訪問各種AI調(diào)優(yōu)的硬件功能,例如TensorCore和AMX擴(kuò)展。因此,對(duì)于某些類型的算法,它比 Python 快得多。
同樣是在 AWS r0iz.metal-03xl 上運(yùn)行Mandelbrot算法,Python3需要17分鐘,而Mojo只要0.03秒。
目前Mojo仍在開發(fā)中,開發(fā)者現(xiàn)在可以率先在 Modular AI 基于 JupyterHub 的 Playground 中試用。
關(guān)于Mojo的定位和特性,有必要了解以下幾點(diǎn):
1、Python的超集:Mojo是Python的超集,這意味著你不需要學(xué)習(xí)一門全新的語(yǔ)言來利用它的好處。如果你已經(jīng)精通Python,你可以很容易地過渡到Mojo Lang。
2、強(qiáng)類型檢查:該語(yǔ)言添加了強(qiáng)大的類型檢查,這對(duì)于優(yōu)化性能和內(nèi)存管理的錯(cuò)誤檢查至關(guān)重要。此功能允許開發(fā)人員編寫更安全、更高效的代碼。
3、所有權(quán)系統(tǒng)和借用檢查器:Mojo包括一個(gè)所有權(quán)系統(tǒng)和類似于 Rust 的借用檢查器,以及支持帶有C++等指針的手動(dòng)內(nèi)存管理。這為開發(fā)人員提供了對(duì)內(nèi)存使用情況的更多控制,從而優(yōu)化了代碼。
4、未來的開源版本:雖然Mojo Lang目前不向公眾開放,但它將來會(huì)開源。這將使開發(fā)人員能夠?yàn)檎Z(yǔ)言的發(fā)展做出貢獻(xiàn),并從社區(qū)的集體知識(shí)中受益。
Fast.ai 聯(lián)合創(chuàng)始人、數(shù)據(jù)科學(xué)家杰里米·霍華德表示:“Mojo可能是幾十年來最大的編程語(yǔ)言進(jìn)步?!彪m然“Mojo還沒有完成”,而且它是由“一個(gè)非常小的團(tuán)隊(duì)在很短的時(shí)間內(nèi)創(chuàng)建的”,但是發(fā)起者Lattner有LLVM和Swift的開發(fā)經(jīng)驗(yàn),當(dāng)下的進(jìn)展“已經(jīng)很讓人振奮”。
有人表示期待,自然也有人表示質(zhì)疑。
首先,炮火就集中在了那個(gè)驚人的“比Python快35000倍”上。有網(wǎng)友認(rèn)為這就是個(gè)噱頭,而且在形形色色的編程語(yǔ)言中Python的性能基本都處于末流,就像“跟班上常年墊底的人作比較,沒有太大意義”。
再者,這個(gè)語(yǔ)言的前景再牛,等到成熟的時(shí)候少說還需要十幾年沉淀,變數(shù)太多。而且早年也曾有Julia會(huì)替代Python的說法,結(jié)果就是打臉。
不止于Python,這些年試圖向C++、Java等語(yǔ)言挑戰(zhàn)的新生代層出不窮,無一例外均是中途折戟。在編程語(yǔ)言界,“長(zhǎng)江后浪推前浪”很罕見,“你爸爸永遠(yuǎn)是你爸爸”卻似乎是常態(tài)。
二、5月排行榜速覽:老將活力依舊,新兵難挑大梁
上述結(jié)論在Tiobe發(fā)布的五月編程語(yǔ)言排行榜又得到了力證。
縱覽排行榜,前四的語(yǔ)言并沒有太多意外。Python占據(jù)榜首,緊隨其后的是C和Java。C++雖然屈居第四,但其3.13%的增幅依然領(lǐng)先于其他語(yǔ)言,展現(xiàn)出了不容忽視的姿態(tài)。
正如TIOBE Software 首席執(zhí)行官Paul Jansen所說,“編程語(yǔ)言的流行是相當(dāng)穩(wěn)定的”。在榜的前10種編程語(yǔ)言,最年輕的是C#,而C# 始于 2000 年,那也已經(jīng)是23年前了。
新的編程語(yǔ)言如過江之鯽,但幾乎沒有一種能進(jìn)入前100名。
在目前的前100名中,誕生不足十年的語(yǔ)言只有8種:Swift(#14),Rust(#17),Crystal(#48),Solidity(#59),Pony(#71),Raku(#72),Zig(#88)和Hack(#92)。而且這些新生代“佼佼者”的發(fā)展時(shí)間均不低于5年。
另外,值得一提的是排名第19位的Fortran。作為一門上世紀(jì)的科學(xué)計(jì)算語(yǔ)言,F(xiàn)ortran早已不在主流之列,甚至有很多人都沒怎么接觸過。但由于近來對(duì)數(shù)值計(jì)算能力的需求不斷增長(zhǎng),F(xiàn)ortran又有了回暖之勢(shì)。如今這個(gè)“古董”再次于躋身榜單前二十,不啻于煥發(fā)新生。
圖源:Tiobe
在編程語(yǔ)言的流行度評(píng)測(cè)中,新生代難挑大梁的現(xiàn)象并非偶然。
不久前,技術(shù)面試和評(píng)估平臺(tái)CodeSignal進(jìn)行了一項(xiàng)調(diào)查 —— 2023 State of Engineer Hiring Survey,以期對(duì)對(duì)當(dāng)今技術(shù)招聘的全行業(yè)趨勢(shì)進(jìn)行統(tǒng)籌分析。調(diào)查面向的開發(fā)者包括前端、后端、全棧、數(shù)據(jù)科學(xué)家、數(shù)據(jù)工程師。
在2696名受訪者中,有78%的受訪者將 Python 3 列為他們經(jīng)常使用的編程語(yǔ)言之一,這也與 TIOBE 榜單的排名保持了一致。在所有崗位中,除了前端最常用的編程語(yǔ)言是 JavaScript/NodeJS(82.9%),其余的職位都將 Python 3 列為最主要使用的編程語(yǔ)言。
而且除了 Python 3,開發(fā)者青睞的常用語(yǔ)言普遍都是耳熟能詳?shù)睦吓凭幊陶Z(yǔ)言,諸如TypeScript這樣的后起之秀盡管有微軟這個(gè)親爸爸的加持,存在感還是相對(duì)薄弱。
圖源:CodeSignal
不過在薪酬表現(xiàn)上,收入最高的編程語(yǔ)言卻并不一定是最受歡迎的那一撥。按年薪中位數(shù)來看,第一梯隊(duì)里既有 Python 3,也有流行度不那么高的TypeScript、React 和 Bash。
圖源:CodeSignal
從上述統(tǒng)計(jì)來看,相較于掌握J(rèn)ava、C、C++ 等老牌編程語(yǔ)言的開發(fā)者,使用TypeScript 、React 等新興編程語(yǔ)言的開發(fā)者收入更高。
由此可見,新興語(yǔ)言在生態(tài)上肯定無法與老牌語(yǔ)言抗衡,但在一些特定需求中,反而會(huì)因?yàn)椤捌尕浛删印倍@得更高回報(bào)。
三、盤點(diǎn):值得關(guān)注的小眾語(yǔ)言
新語(yǔ)言成長(zhǎng)起來前,注定會(huì)作為小眾群體進(jìn)入大眾視野,也不怪Mojo的報(bào)道下面有不少人都在期待之余保持了冷靜——“可能有點(diǎn)東西,但還是過十年再說吧”,前景如何說到底還是要耐心等待。
不過,語(yǔ)言界的新生一輩中也不乏令人驚艷的“天選之子”,我們可以梳理出幾個(gè)典型。
1.Swift:來自蘋果的“天驕”
Swift是一種由蘋果公司開發(fā)的編程語(yǔ)言,最早于2014年蘋果全球開發(fā)者大會(huì)(WWDC)上亮相。它主要用于開發(fā)iOS、macOS、watchOS和tvOS應(yīng)用程序。2020年,這門兼顧簡(jiǎn)潔、性能和優(yōu)美的語(yǔ)言就在TIOBE 編程語(yǔ)言排行榜上闖入前十之列,收獲了遠(yuǎn)超預(yù)期的歡迎。
Swift 能如此快地普及,除了有蘋果公司的背書外,也在于它借鑒了很多其他優(yōu)秀編程語(yǔ)言的特性,其現(xiàn)代化的語(yǔ)法和強(qiáng)大的類型系統(tǒng),可以提高代碼的可讀性和可維護(hù)性。此外,Swift 對(duì)于蘋果應(yīng)用的開發(fā)者而言同樣意義重大。Swift出現(xiàn)后,開發(fā)者在 Objective-C 之外,終于有了第二種選擇。
Swift 的作者,也就是我們前文提到的Lattner,考慮到Objective-C 畢竟是一門脫胎于 C 的老牌編程語(yǔ)言,無論怎么優(yōu)化,它身上總是有 C 語(yǔ)言自身的缺陷,語(yǔ)法上也不夠現(xiàn)代。不如另辟爐灶,開發(fā)一門新的易學(xué)易用的語(yǔ)言,如今看來,Swift 雖然沒有做到完美,但隨著它日趨成熟,在編程語(yǔ)言界也占據(jù)了不可小覷的一席之地。
2.Rust:被眾多大廠看好的“好學(xué)生”
在本月的TIOBE排行榜中,Rust位列17,較上月又上升了兩個(gè)位次,可以說是穩(wěn)步發(fā)展中。Rust 最早是由Mozilla 員工 Graydon Hoare 在 2006 年創(chuàng)建的一個(gè)業(yè)余項(xiàng)目。2015 年,Mozilla 發(fā)布了 Rust 的首個(gè)穩(wěn)定版本 v1.0 ,才讓Rust引起了業(yè)內(nèi)的廣泛關(guān)注,尤其令人印象深刻的是其內(nèi)存安全性。
2021年,Mozilla 聯(lián)合微軟、谷歌、AWS、華為四大技術(shù)廠商創(chuàng)立 Rust 基金會(huì)的消息成為社區(qū)熱門話題,也讓 Rust熱持續(xù)升溫。有了這么多好爸爸,“中途夭折”這種命運(yùn)估計(jì)也不會(huì)落到Rust頭上了。
作為一門系統(tǒng)編程語(yǔ)言,Rust相較C++來說,更安全也更快速。因?yàn)槟茉诰幾g時(shí)檢查出幾乎所有安全問題,比如內(nèi)存泄漏、分段錯(cuò)誤、二次釋放等;性能上也優(yōu)于C++,接近于 C 的性能。不過Rust的缺點(diǎn)也很鮮明,比如編譯器檢查更為嚴(yán)格,學(xué)習(xí)曲線更為陡峭。
最近Rust的新聞不少,微軟正在用 Rust 編程語(yǔ)言重寫核心 Windows 庫(kù),這也是微軟近年來探索使用 Rust 作為 C、C++ 替代方案的舉措之一。另外在 AWS的資金支持下,sudo 和 su 命令正在用 Rust 重寫,以提高這些廣泛依賴的軟件的內(nèi)存安全。
不過一切向好的發(fā)展大勢(shì)下依舊存有隱憂,更廣的市場(chǎng)滲透率、更好的平臺(tái)支持、更高的生產(chǎn)力才是用戶的追求,而目前來看,Rust 要做到這些尚需時(shí)日。
3.Zig:一切皆有可能的“黑馬”
誕生于 2016 年的Zig被視為C語(yǔ)言的有力競(jìng)爭(zhēng)者,在5月的Tiobe編程語(yǔ)言排行榜上名列第88位。但在上個(gè)月的榜單中,Zig曾一下躥升到第46位。起起落落間,已經(jīng)有了點(diǎn)出其不意的黑馬之姿。
Zig出現(xiàn)后就處在了C語(yǔ)言的挑戰(zhàn)位,也有人認(rèn)為其有望成為C語(yǔ)言的替代品。它保有C語(yǔ)言的部分功能特性,同時(shí)也舍去了其中不太理想的一些功能設(shè)計(jì)。
Zig和C語(yǔ)言一樣是通過手動(dòng)管理內(nèi)存的;Zig兼容C語(yǔ)言,可以導(dǎo)入 .h 頭文件并直接使用 C 語(yǔ)言的類型、變量和函數(shù),但是減少了很多冗余,增加了泛型數(shù)據(jù)結(jié)構(gòu)和函數(shù);Zig通過協(xié)程實(shí)現(xiàn)并發(fā),相比C語(yǔ)言的多進(jìn)程和多線程更加高效。
在語(yǔ)法上,Zig最大的創(chuàng)新是編譯期值和編譯期函數(shù)。簡(jiǎn)言之,你可以寫一些函數(shù)是在編譯期運(yùn)行的,這些函數(shù)能夠通過編譯器反射獲取很多元信息,然后通過這些元信息生成真正的運(yùn)行函數(shù)或者類型。
曾有人對(duì)Zig語(yǔ)言的設(shè)計(jì)者Andrew Kelley 表示,在編譯時(shí)運(yùn)行代碼是個(gè)蠢主意。不過Kelley 還是堅(jiān)持了這一想法,多年以后,這個(gè)看著不怎么聰明的點(diǎn)子成為了 Zig 最鮮明的招牌。Zig 可以在編譯時(shí)運(yùn)行代碼的能力讓開發(fā)者們可以在不明確任何泛型或模板支撐的情況下,編寫通用代碼或是進(jìn)行元編程。
此外,Zig另外一個(gè)重要的特色就是對(duì)嵌入式領(lǐng)域和系統(tǒng)級(jí)編程的支持,這也是其將自己定位成C語(yǔ)言競(jìng)爭(zhēng)者的原因之一。Zig的交叉編譯工具做得非常極致,在非常小的編譯器工具中內(nèi)置了非常多系統(tǒng)的交叉編譯支持。目前來看,Zig要取代C語(yǔ)言還太過稚嫩,但至少它提供了一種讓人耳目一新的可能。
四、結(jié)語(yǔ)
編程語(yǔ)言無論是大眾還是小眾,并沒有絕對(duì)的優(yōu)劣之分。無論使用哪種或哪些編程語(yǔ)言,真正的關(guān)鍵從不在于語(yǔ)言的種類,而在于編碼的技能水平。就像Pony語(yǔ)言的創(chuàng)建者Sylvan Clebsch所說,“一門編程語(yǔ)言只是另一種工具。與語(yǔ)法無關(guān),與表達(dá)性無關(guān),與范式或模型無關(guān),僅與解決難題有關(guān)?!?/p>
參考鏈接:
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
當(dāng)前標(biāo)題:比Python快35000倍?這門新語(yǔ)言想搞個(gè)大新聞!
URL分享:http://m.fisionsoft.com.cn/article/dpeoepe.html


咨詢
建站咨詢
