我們需要新的編程語言?你可能認為并不需要,但是如果你去了解最近的趨勢,你可能會改變你的想法。為什么Google采用GO和DART兩種編程語言?為什么IBM、Cray、Red Hat分別創造了X10、Chapel和Ceylon三種語言?
未來,這10種編程語言(DART、Ceylon、GO、F#、OPA、Fantom、Zimbu、X10、Haxe、Chapel)是否能否撼動IT。新的編程語言是為了滿足某些人的創作沖動還是新編程方式的技術演進?
回顧歷史
如果你回頭看看,我們可以看出新語言的爆發將歷史分為3個時期,每個時期都鏈接到技術演進的臨界點。
云計算是否會用到這些語言?如果你分析這些新語言背后的故事,你會看到一個新興的共同主題。
1.分布式/并行計算
可用于并行計算的編程語言(Cray的Chapel、IBM的X10)、并發編程(Clojure,Fantom,Go)和完整云棧單語言(Opa)。
由于云計算所有模式是將任務分發跨越不同地域的多個CPU并行或同時運行,所以現今的編程語言都不是很適合。
2.多范式編程
支持面向對象和函數式編程語言(Clojure、F#、Fantom、Scala),相對于并行化程序要簡單,而純函數式語言看來并不是十分成功。因此,需要嘗試多范式編程語言。
3.多平臺編程
多平臺編程語言不僅可在JVM和CLR實施(Clojure、Fantom、Scala),還可以在其他幾個平臺(Clojure & Fantom on JavaScript engine、Scala on Android、Haxe on several platforms)。這事我們幾十年來一直追逐的夢想,因此這就是創建跨平臺語言的最好理由。
4.規?;幊?/p>
可讀性、模塊化(Ceylon)、編譯速度(Go、Zimbu)、適合大型團隊(Scala)、Meta-programmability(Ceylon、Scala)和簡潔(Scala、Zimbu)是構建大型應用程序的編程語言的特性。
云計算提供了幾乎無限的計算能力,這使得我們可以構建更大規模、更復雜的應用。當然構建大型應用需要大型團隊和易于維護的代碼。因此創建大型應用程序的編程語言勢在必行。
5.客戶端編程
替代JavaScript的DART、客戶端和服務器端相同的語言(Naxe、Opa、Zimbu)自然有自己特有的優勢。
云計算需要客戶端代碼無縫的運行在多個客戶端設備上,雖然JavaScript已經成為了一個標準,但沒有人喜歡它。因此,需要構建比JavaScript更好的并適用于多客戶端平臺的語言。