Python的四個挑戰者:Swift、Go、Julia、R

csdn發表於2016-06-30

  沒什麼是永恆的——包括程式語言。很多看起來可能是將來的佼佼者,到頭來可能被人們遺忘。無論是因為不可抗拒的原因,還是因為自身發展的原因。

  Python時下正在“最熱門的程式語言榜”上春風得意,看起來將會成為一門不朽的語言。但是現在,很多其他語言也逐漸顯現出Python的一些優點:程式設計方便,對數學和科學計算擁有強大的處理能力,龐大的第三方庫。

  下面是Python的一些潛在的挑戰者,並討論了Python是如何保住它第一的席位的。

 Swift

  它是什麼:蘋果公司的一種程式語言,主要用於原生的iOS開發,但是現在已經開源,並有向伺服器端發展的傾向。

  它的優點:使用Swift程式設計是一種毫無障礙的體驗!用起來相比於編譯型語言(比如,它間接的前任Objective-C)更像是一種指令碼語言(比如Python)。Swift的決定性的優點是它的速度——它是由LLVM編譯框架編譯成機器碼的,所以它具備真正的多執行緒。Python還在這方面掙扎

  如果說開發速度要比執行速度重要的話,Python在方面更有優勢。但是Swift有XCode IDE的“Playground”模式。

  Python的優點:一方面,相比於Python來說,Swift是一門新型的程式語言,Python有所有成熟的語言所具備的有點——大量的使用者基礎,大量的庫,成熟的多平臺支援。Swift現在甚至還不能支援Windows(如果不算上第三方庫的話),雖然這是將來必定會實現的特性。Swift還會產生對蘋果工具鏈的依賴(比如Xcode),而Python的依賴就少的很。

 Go

  **它是什麼:**Google的“表現力強、簡潔、乾淨、高效”的語言,從Docker及其相關專案到InfluxDB資料庫,Ethereum壞鏈系統和Canonical的Snappy包管理工具都是用Go寫成的。

  它的優勢:和Swift一樣,Go語言也會編譯成平臺相關的機器碼,所以它不僅可以在多工方面比Python快很多,還還可以在執行時不像Python那樣生成額外的目標。Go程式碼編譯速度非常快,開發速度也很快,所以它更像一門解釋性的語言。

  Python的優勢:雖然Go不像Swift那麼新——它在2009年釋出——Python在使用者和庫的數量方面還是佔有優勢。此外,Go的語法和錯誤處理方式和Python相去甚遠。所以,現在Python使用者很難轉移到Go,但是不會阻止新使用者選擇這樣一門語言。現階段,Python的安裝器讓使用和構建Python應用非常簡單——更不必說像Linux這樣的系統,Python已經成為了標準。

 Julia

  它是什麼:在2012年釋出,是面向技術應用的一門程式語言,例如資料分析和線性代數。

  它的優點: Python一個很大的用處是數學和科學應用——多虧了Numpy這樣的庫和互動式的IPython編輯程式。Julia的目標使用者也是同樣的群體,和Go、Swift一樣,它也比Python快。它還有一個正在不斷擴充套件的,不僅僅包括科學和數學計算的應用,還有很多Python的功能,比如從雲端提供商那裡取得資料。

  Python的優點: Julia有和Python類似的庫,但是Python並不滿足現狀,還在馬不停蹄地優化語言的核心開發環境。Python的速度並非一定不及Julia(或者其他Python的競爭者),只要針對不同的工作選擇恰當的庫完成,速度還是客觀的。

  Julia語言本身還存在一些爭議。比如,Julia的陣列下標是從1開始的,而不是0——這不僅和Python比是一個缺點,很其他語言比起來也是。(很多第三方的包索引也是從1開始,但是仍讓人很不習慣。)

 R

  它是什麼:無論是就開發環境還是語言本身來說,這都是一個很老的語言了。它專為統計學設計。

  它的優點: R有很多Python的優點,比如有豐富的第三方庫等。但是R是專門為統計學而生的,並且在後面的發展中依然專注於此。Python也可以做數學和統計學方面的計算,但是在這方面被R語言完全碾壓。 

  R語言還引起了很多大公司的注意,微軟收購了一個R語言標準實現的開發商開服務它的雲端資料。Hewlett-Packard開發了一種分散式的R語言計算產品,可以同時跨多個節點執行。這個產品在將來可以把Python完全擠出這個領域。

  Python的優點:有時候,作為一個多用途的語言也有它的好處。R語言的功能侷限在統計學計算方面。由於開發環境的限制,構建R語言應用也很麻煩,使用Python建立應用就很簡單。而且通過像RPy2這樣的包可以輕鬆地將R語言和Python聯合起來。

  微軟對R語言的投入很多,但是同時微軟也對Python提供了很多支援,所以這兩種語言都能在Azure上工作的很好。

  原文:4 languages poised to out-Python Python

相關文章