比Python快35000倍!下一代明星編程語(yǔ)言Mojo
簡(jiǎn)介
一種面向AI開(kāi)發(fā)人員的新編程語(yǔ)言剛剛發(fā)布:Mojo。
從設(shè)計(jì)之初,Mojo是Python的超集,因此如果你已經(jīng)掌握了Python,那么學(xué)習(xí)Mojo十分容易。
Mojo結(jié)合了Python的可用性和C語(yǔ)言的性能,其速度比Python快35000倍。
如果你喜歡AI并且已經(jīng)了解Python,Mojo絕對(duì)值得一試。以下是你需要了解的有關(guān)Mojo的所有信息。
如果我們已經(jīng)有了Python,為什么還需要Mojo?
Python的簡(jiǎn)單性和多功能性使它成為數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和人工智能等領(lǐng)域的首選語(yǔ)言。它有大量的包,對(duì)任何從事數(shù)據(jù)工作的人都非常有用,但對(duì)于需要強(qiáng)大性能的庫(kù)來(lái)說(shuō),Python只是作為膠合層和C、C++及其他性能更好的語(yǔ)言的低級(jí)綁定。
這使得NumPy和TensorFlow等庫(kù)的開(kāi)發(fā)成為可能。然而,這也有一個(gè)缺點(diǎn):構(gòu)建這些庫(kù)是非常復(fù)雜的,它需要對(duì)CPython的內(nèi)部結(jié)構(gòu)有底層的了解,需要C/C++的知識(shí)等等。
根據(jù)Mojo文件,Python帶來(lái)的問(wèn)題更加深入,特別是對(duì)AI領(lǐng)域的影響。
單靠Python并不能解決應(yīng)用AI系統(tǒng)所需要的所有問(wèn)題,這就是Mojo的誕生契機(jī)。Mojo是一種結(jié)合了Python的可用性和C的性能的編程語(yǔ)言。
但Mojo并不是突然出現(xiàn)的隨機(jī)項(xiàng)目。事實(shí)上,Mojo來(lái)自一家名為Modular的公司,由克里斯-拉特納(Chris Lattner)共同創(chuàng)立,他也是Swift編程語(yǔ)言和LLVM的創(chuàng)始人。
現(xiàn)在讓我們來(lái)看看Mojo的一些最佳功能。
Mojo的特點(diǎn)
Mojo附帶了許多開(kāi)箱即用的有趣功能。下面是其中的一些。
1.Mojo被設(shè)計(jì)成Python的一個(gè)超集
Mojo的目標(biāo)是與Python生態(tài)系統(tǒng)完全兼容。
這意味著,如果你是一個(gè)Python程序員,你可以輕松地使用Mojo,因?yàn)檫@兩種編程語(yǔ)言有許多共同的功能、特性和庫(kù)。
諸如NumPy、Pandas和Matplotlib等庫(kù)也可以在Mojo中使用。下面介紹如何使用Mojo利用matplotlib制作一個(gè)圖。
截圖:Mojo
Mojo仍然處于非常早期的階段,所以它仍然缺少了Python的許多特性(例如,它還不支持類)。
希望在未來(lái)的更新中,Mojo將與Python完全兼容。
2.強(qiáng)大的類型檢查
Mojo利用類型來(lái)實(shí)現(xiàn)更好的性能和錯(cuò)誤檢查。
截圖:Mojo
雖然你仍然可以像Python那樣使用靈活的類型,但Mojo允許你使用嚴(yán)格的類型檢查。這可以使你的代碼更加可預(yù)測(cè)、更易于管理和更安全。
3.內(nèi)存所有權(quán)和借用檢查器
Mojo支持owned
參數(shù)約定,該約定用于想要獨(dú)占某個(gè)值的所有權(quán)的函數(shù)。
截圖:Mojo
這將幫助你在沒(méi)有粗糙邊緣的情況下利用內(nèi)存安全的優(yōu)勢(shì)。
4.自動(dòng)調(diào)整
Mojo具有內(nèi)置的自動(dòng)調(diào)整功能,可幫助自動(dòng)找到你的參數(shù)最佳值,以利用目標(biāo)硬件的優(yōu)勢(shì)。
截圖:Mojo
5.Mojo利用了MLIR
通過(guò)使用多級(jí)中間表征(MLIR)的全部力量,Mojo開(kāi)發(fā)人員可以利用向量、線程和AI硬件的優(yōu)勢(shì)。
這有助于Mojo實(shí)現(xiàn)出色的性能,因?yàn)榕cPython的單線程執(zhí)行不同,Mojo可以在多個(gè)核心上進(jìn)行并行處理。
截圖:Mojo
這就是為什么Mojo比Python快35000倍的原因之一。
截圖:Mojo
如何試用Mojo
Mojo仍然處于開(kāi)發(fā)中,但你可以在基于JupyterHub的Playground上試用它。要試用Mojo,請(qǐng)?jiān)L問(wèn)此網(wǎng)站(https://www.modular.com/get-started)進(jìn)行注冊(cè),不要忘記在“Modular Product Interest”部分勾選Mojo的選項(xiàng)。