Python

【為什麼我們要挑選這篇文章】Python 是 AI 時代當紅的程式語言,然而 Python 有速度慢、空格縮進較難維護、對行動裝置較不友善等缺點,因此有人認為,未來可能會被 Rust、Go、Julia 等程式語言取代。你怎麼看?(責任編輯:郭家宏)

本文經 新智元(公眾號 ID:AI_era)授權轉載,轉載請連繫出處
作者:新智元

近日,關於一篇關於 Python 的討論又重出江湖。

這篇「為什麼 Python 不是未來的程式語言」的文章又出現在了網路上。作者 Rhea Moutafis 稱,如今推動 Python 流行的優點,也正是之後將它擊倒的弱點。

其實早在 2020 年,該作者就在 Medium 上發表了同一篇文章。但不知道是當初發表日期為 4 月 1 日的緣故,還是 TA 真的不喜歡 Python,時隔 1 年零 2 個月又 18 天,作者又決定在另一個平台上重新發一遍。

我們這就來看看,這位 Rhea 為什麼覺得人民群眾都喜歡的 Python 要日薄西山了。

缺點 1:Python 速度很慢,所需時間是其他程式語言的兩倍以上

作者表示,使用 Python 完成一項任務所需的時間是使用任何其他語言的 2 到 10 倍。

原因一:動態類型的應用

Python 不需要像在其他語言中那樣指定數據類型,因此這會需要使用大量的記憶體,因為程式需要為每個變數保留足夠的空間,那麼大量的記憶體使用就會轉化為大量的計算時間。

原因二:一次只能執行一個任務

Python 需要確保每個變數隻有一種數據類型,如果使用並行進程就可能會讓這個機制出現問題。相比之下,普通的瀏覽器可以同時運行十幾個不同的線程。

缺點 2:Python 使用動態作用域,需要在每個可能的上下文測試

Python 使用動態作用域,也就是說編譯器想要對表達式進行評估時,首先會搜尋當前程式碼塊,然後依次搜尋所有調用函數。

動態作用域的問題在於每個表達式都需要在每個可能的上下文中進行測試。這就是大多數現代程式語言使用靜態作用域的原因。

缺點 3:Python 使用空格縮進,較難維護

Python 可以使用空格來表示不同級別的程式碼。這讓程式碼在視覺效果上更加友好,同時也更易於理解。

然而其他的程式語言,如 C++,就會更多地依賴大括弧和分號。雖然對初學者相對不那麼友好,但是這樣可以增加程式碼的可維護性,尤其是對於那些大型專案來說。

數位轉型加速,寫程式已成基本技能。點我訂閱《TechOrange》年度趨勢論壇 2021 CONNECT,追蹤疫後台灣數位新職場樣貌!

缺點 4:Python 並不是為了行動開發而設計的程式語言

使用 Python 開發的行動應用程式很少,顯然,Python 並不是為行動開發而設計的。雖然也不是不能完成,至少有一個名為 Kivy 的 Python 包可以使用。

但是,即便 Python 可以完成基本的任務,最好的辦法仍然是使用一種為行動應用程式開發而建立的語言。

作者聲稱,由於行動端的流量早已超過桌面端,可以肯定地說,學習 Python 並不足以成為一個經驗豐富的全能開發者(a seasoned all-round developer)。

缺點 5:Python 執行時都要編譯,容易出錯

Python 腳本在每次執行時都要進行編譯,不僅耗費時間而且需要進行大量測試。

這可能對初學者來說有一定的幫助,但是對於經驗豐富的開發人員來說,在 Python 中調試一個複雜的程式反而會讓他們出差錯。

Python 的可能替代品:Rust、Go、Julia

作者認為,Rust、Go 和 Julia 都是潛在的替代 Python 的程式語言。

Rust 可以提供與 Python 相同的安全性,而且它透過所有權和借用的機制解決了性能問題。

Go 與 Python 一樣非常適合初學者。而且它非常簡單,程式碼維護起來更容易。同時,Go 語言的開發者是收入最高的工程師之一。

Julia 雖然是一種非常新的語言,但也可以與 Python 進行正面較量。尤其是在大型技術運算中,開發者只靠 Julia 就可以完成,不再需要同時使用 Python、Matlab 甚至還需要 C++ 作為補充。

作者認為,雖然這三種語言的份額還很小,在人工智慧等技術方面也還沒有得到很廣泛的應用,但是在趨勢上是一直在增加的。

不過考慮到 Python 架構中的基本性能問題,這三種語言一定有機會取代 Python。

Python 是目前討論度最高的程式語言,但該作者不看好

說到這個趨勢,我們再來看看作者在文章開頭是怎麼介紹 Python 的。

作者表示,Python 的成功體現在 Stack Overflow 中,該語言在問題標籤數量的趨勢上。

而且,從 Stack Overflow 的規模上來看,這是判斷一個語言流行程度的很好的指標。

從現在最新的數據上來看,有超過 16% 的問題都打上了「Python」的標籤。

顯然,在作者看來,處在上升中且占比達到 16% 的 Python,不如占比加起來都不到 1% 的 Go、Rust 和 Julia。

誠然,這三個都是很好的編程語言。

對此,你怎麼看?

參考資料

The Next Web

(本文經 新智元 授權轉載,並同意 TechOrange 編寫導讀與修訂標題,原文標題為〈AI领域都在用Python即将被淘汰?网友预测未来的编程语言不会是TA〉;首圖來源:flickr CC Licensed。)

量血氧,學 AI

想踏入 AI 智慧醫療領域,但是醫學、程式兩大學科都超哈扣,怎麼學?
工研院 AI 醫療器材技術應用課程
用三堂超精實的線上課,讓沒有程式背景的你,也有機會成為
「血氧醫材操作 + AI 分析」小達人

點我報名去  >>> 工研院 AI 醫療器材應用課程

延伸閱讀

Python 之父:要在 4 年之內,將 CPython 的速度提升 5 倍
今年最受工程師歡迎的程式語言是什麼?劇透:不是 Python
裝上這個外掛,不用寫 code 就能用 Python 做數據分析!