交大AI學院副教授魏澤人認為,雖然在資料科學領域的應用不多,但TensorFlow已經開始支援Swift,比起Julia,Swift有潛力成為Python更大的競爭對手。(攝影/洪政偉)

在Python發展尚未如今日成熟時,很常拿來與同領域相似功能的語言對比,比如在1990年代,Perl幾乎是開發者最常用的手稿語言,Python後來居上,兩者常被拿來相比。臺灣極少數成為Python套件官方機構PyPA(The Python Packaging Authority)的活躍貢獻者鍾子屏表示,Python後來的崛起,部分原因是基於開發者對Perl的反動,但兩者還是各自有擁護者,直到Perl開始在2005年走下坡之後,才逐漸奠定Python的地位。

在資料科學領域也是如此。根據2019年一份報告,統計美國最大求職網站Indeed.com一天內的資料科學領域熱門語言的徵才狀況,顯示出,Python的徵才需求第一,有27,374個職缺,其次是SQL,再來是Java及Amazon的ML工具,然後才是R,有13,800個職缺。這意味著,雖然R和Python常被拿來比較,但實際在資料科學的應用場域,R的需求大概只有Python的一半,就算Python也可能被用來執行通用的任務,但不可否認的,R的應用熱度已經不如Python了。

又或者在Web開發領域,交大AI學院副教授魏澤人也指出,以前還會有人以Python來挑戰Java,或是將Ruby與Python相提並論,不過在Python的地位底定之後,已經很少人拿Python再去戰其他語言,反而是開始有其他新的語言,要試圖挑戰Python的地位,「現在來說,Python已經走向溫和友善的語言,不會去競爭,我們也很歡迎大家在PyCon會議上,來介紹其他語言。」

不過,僅管Python在未來十年內還是有很大優勢維持領先,魏澤人說,仍有幾個值得注意的競爭對手,也許在未來能挑戰Python的地位。其一,是資料科學研究領域的崛起新星Julia,另一個,則是用來開發iOS應用程式的Swift。

2012年才誕生的Julia,是為了滿足高效能數值分析及科學計算,所設計出的靜態、編譯式語言,具有平行處理、分散式運算的能力,其他優勢,還包括能不靠API直接呼叫C語言的函式,具有類似Lisp的巨集與元程式設計工具(Meta Programming),甚至連資料科學領域的超強視覺化工具Jupyter Notebook,也有支援。

魏澤人表示,Julia相對於Python,是比較現代、新潮的語言,編譯式的特性使執行速度更快,也是專門為了平行運算而設計,再加上,Julia的meta programming能力較強,能用來編寫許多小型的領域特定語言(Domain Specific Language,DSL),比如在科學計算中,可以用來自定義一個特別的運算子(Operator)或者語法,來表達領域中習慣的算式和語法,而極端的狀況甚至可以將程式語言重新定義以中文編寫等,都是其中應用。

儘管Julia目前還是一個初出茅廬的新語言,較常被用於學術圈,未來能否進一步應用到業界程式設計或資料科學領域中,還是個未知數,但它已然成為資料科學領域的一個崛起新星,「是個有潛力的語言。」魏澤人說。

而另一個可能與Python相競爭的語言,則是由Apple支持的iOS應用程式開發語言Swift。

若說Julia的應用還侷限在資料科學的研究領域,那Swift不但已經走入應用端,更有大公司在背後支持,應用場景更是廣泛,凡是iOS作業系統的軟應用都能用Swift開發,儘管2014才問世,卻有不可取代的市場與社群優勢。魏澤人說,雖然在資料科學領域的應用不多,但TensorFlow已經開始支援Swift,「比起Julia,我認為Swift有潛力成為Python更大的競爭對手。」

至於與Python相似性高的JavaScript,不但在網頁前端的地位無可匹敵,擁有一定的社群規模,且在AI崛起後,也出現了JavaScript版本的TensorFlow.js框架,能用來開發ML應用,是否可能為Python在資料科學領域的新競爭對手?魏澤人則認為,Python已經成為開發者熟悉的語言,套件生態系的發展也更完善且全面,「JavaScript有一定的優勢,但Python的已經成為資料科學社群習慣且偏好的語言,JavaScript短期內沒有取代的機會。」

 相關報導  AI時代開發語言新主流Python


Advertisement

更多 iThome相關內容