四款后起編程語言能否成功挑戰Python的王者地位
Swift、Go、Julia與R已經成為現任便捷性與功能性王者Python的潛在競爭對手。
王權沒有永恒,編程語言自然也不例外。作為當前雄踞各大語言人氣榜冠軍的Python,其似乎也面臨著同樣的挑戰。不過各類后起之秀也都憑借著自身設計證明,Python所擁有的編程便捷性、強大的數學與科學運算能力以及龐大的第三方庫正是一款優秀語言所必須具備的特質,而并非“加分項”。
以下是Python與這四位潛在挑戰者間的比拼,Python要如何繼續保持住其在編程語言中的優勢?
Swift
作為蘋果原本為iOS開發設計的新興語言,Swift已經走向開源并引起了服務器端開發者們的廣泛興趣。
在Swift中編寫代碼相當舒適,其類似于一種腳本語言而非作為前代方案的Objective-C那種編譯語言。Swift的決定性優勢在于執行速度——其采用與LLVM編譯器框架一致的方式進行機器碼編譯,因此能夠多線程支持,能力上超越Python。
如果開發者認為開發速度比執行速度更重要,那么Python略有優勢,不過Swift也通過Xcode IDE提供相當便捷的“Playground”模式。
相較于Python,Swift仍然比較年輕,因此我們的老牌王者在群眾基礎上顯然更好。Swift目前尚無法運行在Windows平臺上,因此在落地方面不及Python那么便利。
Go
谷歌公司打造的“直觀、簡潔、干凈、高效”語言,目前已經得到諸多主流技術廠商的廣泛支持。
與Swift類似, Go同樣可編譯為平臺原生二進制代碼,因此在某些任務中擁有優于Python的運行速度,而且無需設定目標即可完成跨平臺開發。 Go語言的編譯速度也非常出色,從開發速度角度看,其更像是一種解釋型語言而非采用編譯機制。
雖然Go的歷史比Swift稍長一些,但其群體基礎仍然無法同Python相比。另外,Go的語法與錯誤處理方案對當前Python用戶來說可能不太友好。因此,其并不適合已經掌握了Python的程序員朋友。而Pyinstaller等工具的出現則讓Python應用的綁定工作變得非常便捷,更不用提在大多數Linux系統中,Python運行時已經被設為預置項目了。
Julia
發布于2012年的Julia專門用于技術類應用,例如數據分析與線性代數計算。
Python的一類主要用例在于數學與科學應用,這主要歸功于Numpy等庫與交互IPython筆記本格式。 Julia瞄準了同一用戶群體,但在核心速度上要超過Python。 另外,其還提供愈發豐富的軟件包資源,不僅能夠實現數學與科學應用,同時也能像Python那樣實現面向云環境下數據源的連接性。
Julia雖然發展速度很快,但Python的開發者社區也不會坐以待斃——圍繞Python進行的核心語言與環境開發一直未曾停歇。而且盡管Python的運行速度不及Julia,但大家仍然可以利用合適的庫來搞定合適的工作。
另外Julia的反對者也大有人在。舉例來說,Julia的數組為1索引而非0索引,這一點與幾乎所有現有語言都有所區別。
R
這是一個同時包含語言與開發環境的統計計算項目。
R相較于Python擁有多項優勢,例如豐富的第三方軟件生態系統。另外,R在設計中考慮到了統計計算需求。雖然Python也很重視數學及統計處理,但R可謂在開發當中自上而下將二者進行了貫穿。
R還吸引到了眾多大牌廠商的支持。微軟就進行了一系列收購旨在利用R構建自己的云數據服務。惠普方面則開發了Distributed R,能夠一次性運行在多個節點之上。隨著各相關技術成果的不斷演進,R完全有可能在統計計算領域將Python拉下馬。
不過有時候通用型語言的優勢還是值得強調。R雖然針對性更強,但也更具局限性——我們很難在R應用中實現交互性。另外,Python還能夠更好地與其它語言對接,使用RPy2等軟件包即可同時享受Python與R帶來的便利。
最后,盡管微軟確實對R給予了高度關注,但別忘了軟件巨頭同時也向Python伸出了援助之手,并計算將其運行在Azure當中。
原文標題:4 languages poised to out-Python Python
來自: http://developer.51cto.com/art/201606/513444.htm