Python的四個挑戰者:Swift、Go、Julia、R
沒什麼是永恆的——包括程式語言。很多看起來可能是將來的佼佼者,到頭來可能被人們遺忘。無論是因為不可抗拒的原因,還是因為自身發展的原因。
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上工作的很好。
相關文章
- CSV檔案讀取效能大決戰:Julia 、Python與R語言 - DeepakPythonR語言
- 守衛者的挑戰
- Julia:調查顯示76% 的 Julia 使用者將 Python 作為首選替代語言Python
- 把一個python程式改寫成JuliaPython
- 把一個Python程式改寫為JuliaPython
- 挑戰演算法題:四數之和演算法
- 《精靈寶可夢 GO》:機遇大於挑戰Go
- Zcash:帶著面具的比特幣挑戰者比特幣
- Swift 寫一個完整的介面(實戰)Swift
- client-go實戰之四:dynamicClientclientGo
- Go-kratos 框架商城微服務實戰之使用者服務 (四)Go框架微服務
- Steam的新挑戰者(下): 如何吸引開發者和玩家?
- 福布斯:OPPO如何在中國成為蘋果的挑戰者蘋果
- 做一個軟體開發者的最大挑戰
- 挑戰Python題解-019Python
- Kubernetes 日誌傳輸中的四大挑戰
- MIT正式釋出程式語言Julia 1.0:Python、R、C++三合一MITPythonC++
- 這五個品牌具有挑戰蘋果的實力蘋果
- 趣味挑戰:寫一個 2 + 2 = 5 的程式
- IBM稱全球CIO面臨四大挑戰IBM
- AI的道德挑戰AI
- 安全AI挑戰者計劃—積分稱霸榜AI
- Python練手題,敢來挑戰嗎?Python
- 一人一python挑戰題解Python
- internet2go:移動支付面臨普及挑戰Go
- 4.week 獨立開發挑戰第四周及一個月記錄
- julia與python類似之處Python
- 管理多個專案:專案管理真正的挑戰專案管理
- 一個julia語言部落格
- 挑戰系統 / 進入區域挑戰怪物
- 管理者注意:2019年將要面對的三個雲端計算挑戰!
- 將使用yield的python程式改寫成JuliaPython
- 採用Scrum的挑戰Scrum
- Java面臨的挑戰Java
- 信用行業的挑戰行業
- GO 陣列操作四個小案例Go陣列
- CODEVS 1997 守衛者的挑戰(三維dp)dev
- 手把手和你一起實現一個Web框架實戰——EzWeb框架(四)[Go語言筆記]Go專案實戰Web框架Go筆記