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