天天看點

雲計算時代最具潛力的12種程式設計語言

雲計算時代最具潛力的12種程式設計語言

我們需要新的程式設計語言?你可能認為并不需要,但是如果你去了解最近的趨勢,你可能會改變你的想法。為什麼google采用go和dart兩種程式設計語言?為什麼ibm、cray、red hat分别創造了x10、chapel和ceylon三種語言?

未來,這10種程式設計語言(dart、ceylon、go、f#、opa、fantom、zimbu、x10、haxe、chapel)是否能否撼動it。新的程式設計語言是為了滿足某些人的創作沖動還是新程式設計方式的技術演進?

雲計算時代最具潛力的12種程式設計語言

回顧曆史

如果你回頭看看,我們可以看出新語言的爆發将曆史分為3個時期,每個時期都連結到技術演進的臨界點。

雲計算時代最具潛力的12種程式設計語言

圖中時間點以外的還有其他重要語言:(1)pascal – 1970、(2)c – 1972、(3)prolog – 1972、(4)smalltalk – 1972、(5)erlang – 1986、(6)perl – 1987、(7)c#

雲計算是否會用到這些語言?如果你分析這些新語言背後的故事,你會看到一個新興的共同主題。

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.規模化程式設計

可讀性、子產品化(ceylon)、編譯速度(go、zimbu)、适合大型團隊(scala)、meta-programmability(ceylon、scala)和簡潔(scala、zimbu)是建構大型應用程式的程式設計語言的特性。

雲計算提供了幾乎無限的計算能力,這使得我們可以建構更大規模、更複雜的應用。當然建構大型應用需要大型團隊和易于維護的代碼。是以建立大型應用程式的程式設計語言勢在必行。

5.用戶端程式設計

替代javascript的dart、用戶端和伺服器端相同的語言(naxe、opa、zimbu)自然有自己特有的優勢。

雲計算需要用戶端代碼無縫的運作在多個用戶端裝置上,雖然javascript已經成為了一個标準,但沒有人喜歡它。是以,需要建構比javascript更好的并适用于多用戶端平台的語言。

12種語言快速預覽

12種語言是按照a-z進行排序的,有趣的是這12種語言都是遵循某種開源許可之下(圖表中不包括html5,因為從嚴格意義上它還不是一個新語言,同時也排除了node.js,因為它僅僅是伺服器端javascript引擎)。(李智/編譯)

雲計算時代最具潛力的12種程式設計語言