AI領域都在用Python即將被淘汰?網友預測未來的編程語言不會是TA
近日,關于一篇關于Python的討論又重出江湖。
哦,不是這個。
這篇「為什么Python不是未來的編程語言」的文章又出現在了互聯網上。作者Rhea Moutafis稱,如今推動Python流行的優點,也正是之后將它擊倒的弱點。
其實早在2020年,該作者就在Medium上發表了同一篇文章。但不知道是當初發表日期為4月1日的緣故,還是TA真的不喜歡Python,時隔1年零2個月又18天,作者又決定在另一個平臺上重新發一遍。
我們這就來看看這位Rhea為什么覺得人民群眾都喜歡的Python要日薄西山了。
速度很慢,真的很慢
作者表示,使用Python完成一項任務所需的時間是使用任何其他語言的2到10倍。
原因一:動態類型的應用。
Python不需要像在其他語言中那樣指定數據類型,因此這會需要使用大量的內存,因為程序需要為每個變量保留足夠的空間,那么大量的內存使用就會轉化為大量的計算時間。
原因二:一次只能執行一個任務。
Python需要確保每個變量只有一種數據類型,如果使用并行進程就可能會讓這個機制出現問題。相比之下,普通的瀏覽器可以同時運行十幾個不同的線程。
作用域
Python使用動態作用域,也就是說編譯器想要對表達式進行評估時,首先會搜索當前代碼塊,然后依次搜索所有調用函數。
動態作用域的問題在于每個表達式都需要在每個可能的上下文中進行測試。這就是大多數現代編程語言使用靜態作用域的原因。
空格縮進
Python可以使用空格來表示不同級別的代碼。這讓代碼在視覺效果上更加友好,同時也更易于理解。
然而其他的編程語言,如 C++,就會更多地依賴大括號和分號。雖然對初學者相對不那么友好,但是這樣可以增加代碼的可維護性,尤其是對于那些大型項目來說。
移動開發
使用Python開發的移動應用程序很少,顯然,Python并不是為移動開發而設計的。雖然也不是不能完成,至少有一個名為Kivy的Python包可以使用。
但是,即便Python可以完成基本的任務,最好的辦法仍然是使用一種為移動應用程序開發而創建的語言。
作者聲稱,由于移動端的流量早已超過桌面端,可以肯定地說,學習Python并不足以成為一個經驗豐富的全能開發者(a seasoned all-round developer)。
錯誤和異常
Python腳本在每次執行時都要進行編譯,不僅耗費時間而且需要進行大量測試。
這可能對初學者來說有一定的幫助,但是對于經驗豐富的開發人員來說,在Python中調試一個復雜的程序反而會讓他們出差錯。
Python的替代品
作者認為,Rust,GO和Julia都是潛在的替代Python的編程語言。
Rust可以提供與Python相同的安全性,而且它通過所有權和借用的機制解決了性能問題。
Go與Python一樣非常適合初學者。而且它非常簡單,代碼維護起來更容易。同時,Go語言的開發者是收入最高的程序員之一。
Julia雖然是一種非常新的語言,但也可以與Python進行正面較量。尤其是在大型技術計算中,開發者只靠Julia就可以完成,不再需要同時使用Python、Matlab甚至還需要C++作為補充。
作者認為,雖然這三種語言的份額還很小,在人工智能等技術方面也還沒有得到很廣泛的應用,但是在趨勢上是一直在增加的。
不過考慮到 Python 架構中的基本性能問題,這三種語言一定有機會取代Python。
大勢所趨?
說到這個趨勢,我們再來看看作者在文章開頭是怎么介紹Python的。
作者表示,Python的成功體現在Stack Overflow中該語言在問題標簽數量的趨勢上。
而且,從Stack Overflow的規模上來看,這是判斷一個語言流行程度的很好的指標。
從現在最新的數據上來看,有超過16%的問題都打上了「Python」的標簽。
顯然,在作者看來,處在上升中且占比達到16%的Python,不如占比加起來都不到1%的Go、Rust和Julia。
誠然,這三個都是很好的編程語言。
對此,你怎么看?