人們想到選擇一門計算機(jī)語言時,可能會選擇學(xué)校里學(xué)到的知名度高的通用過程語言之一,比如C、Java或Python。但這些經(jīng)常被人選擇的語 言只是計算機(jī)語言領(lǐng)域的冰山一角而已――如果它使用關(guān)鍵字和結(jié)構(gòu)來傳達(dá)信息,那它就是一門語言。下面是值得考慮的十大云計算語言。
1. SQL數(shù)據(jù)語言
說到數(shù)據(jù)語言,SQL是幾十年來無可爭議的霸主。連非關(guān)系型數(shù)據(jù)庫服務(wù)器也使用某種SQL語言。就跟IT的其他所有領(lǐng)域一樣,云計算領(lǐng)域同樣充斥著SQL。
這是每個地方的開發(fā)人員都會會心一笑的SQL玩笑。“有人走進(jìn)一間酒吧,看到兩張桌子。他說‘我可以跟你一起喝嗎?’”
2. XML數(shù)據(jù)語言
XML用來描述文檔,而不是傳達(dá)一串指令。由于XML通常并不給計算機(jī)下達(dá)指令,它通常不被認(rèn)為是一門計算機(jī)語言。
XML是大受歡迎的數(shù)據(jù)標(biāo)記語言,而這主要?dú)w因于Java。只要有Java的地方,就有XML。又由于Java自從早在云計算大行其道之前就一直驅(qū)動大規(guī)模分布式系統(tǒng),XML文檔無處不在。Apache Hadoop配置就駐留在XML文件中。
3. R數(shù)學(xué)語言
R語言幫助廣大開發(fā)人員處理統(tǒng)計數(shù)字、報告和圖形。交互式R教程讓新的開發(fā)人員領(lǐng)略向量、因子及關(guān)聯(lián)數(shù)據(jù)集帶來的樂趣。
亞馬遜將RStudio集成開發(fā)環(huán)境(IDE)與其EMR(彈性MapReduce)服務(wù)捆綁起來,幫助進(jìn)行大數(shù)據(jù)分析。
4. Clojure數(shù)學(xué)語言
Clojure不僅僅是一門數(shù)學(xué)語言,它既是一門通用語言,還是一門函數(shù)語言。另外說來也巧,Clojure在數(shù)據(jù)分析人員當(dāng)中也大受歡迎。
實(shí)時數(shù)據(jù)流處理系統(tǒng)Apache Storm用Clojure編寫而成。函數(shù)語言不需要分號,而過程語言需要分號;你能看到分號只用于這個Clojure腳本(https://github.com/apache/storm/blob/master/storm-core/src/clj/backtype/storm/clojure.clj)中的注釋。
5.Haskell函數(shù)語言
Haskell是一門函數(shù)語言,就分布式計算而言再理想不過了;云Haskell平臺項(xiàng)目在幾年前就啟動了。
盡管Haskell在業(yè)界有相當(dāng)高的采用率,而且躋身GitHub前20門語言,但Haskell在云計算領(lǐng)域的采用情況差強(qiáng)人意――可能是Haskell被認(rèn)為太難學(xué)會。你可以在Try Haskell教程中自己體驗(yàn)一把。
6. Erlang函數(shù)語言
Erlang脫胎于愛立信。在電信行業(yè),產(chǎn)品必須永遠(yuǎn)持續(xù)運(yùn)行,而任何東西(客戶、聯(lián)系、事務(wù)和記錄)都以數(shù)百萬計算。
電信級函數(shù)語言聽起來非常適合云計算。而實(shí)際上,盡管沒有躋身GitHub前20門語言,但Erlang驅(qū)動廣受歡迎的云計算應(yīng)用程序,包括Riak、CouchDB、RabbitMQ,甚至還有LING單內(nèi)核。
7. Python過程語言
Python是一門旨在易于閱讀的高級語言。這年頭,幾乎每個人、確實(shí)每個人都能從Python盡快上手。學(xué)習(xí)輔助手段包括:課程、圖書,甚至交互式Python教程。
OpenStack是流行的基礎(chǔ)設(shè)施即服務(wù)(IaaS)管理軟件,它用Python編寫而成。不妨看一下面向Nova客戶界面的這段Python代碼(https://github.com/openstack/python-novaclient/blob/master/novaclient/client.py)。
8. Go過程語言
幾年前,谷歌開發(fā)了Go;當(dāng)時谷歌的一些編程人員對Stroustrup的C++之類的語言頗為沮喪。谷歌提供了交互式Go教程和Go Playground,以便處理代碼。
作為云計算領(lǐng)域的寵兒,Docker就是用Go編寫而成的,Docker生態(tài)系統(tǒng)的其他許多項(xiàng)目也是如此。
9. GFM特定領(lǐng)域語言
GFM(GitHub Flavored Markdown)是一種明文格式語言,可用于記錄GitHub上的軟件庫。GFM被數(shù)百萬的開發(fā)人員所使用,因?yàn)閿?shù)百萬的開發(fā)人員使用GitHub。
由于GitHub上有那么多專門針對云的項(xiàng)目,比如Cloud Foundry,了解GFM是好事。它可能是本文介紹的十門語言中學(xué)起來最簡單的。
10. 正則表達(dá)式特定領(lǐng)域語言
Regex(正則表達(dá)式)語法讓新手很撓頭,原因在于它其實(shí)是象征性的――只有單個字符,而不是關(guān)鍵字。正則表達(dá)式代碼看起來某人在鍵盤上睡著了。如果你想一輩子不敢碰正則表達(dá)式語言,不妨看看這個極端例子:JSON解析器(http://www.perlmonks.org/?node_id=995856)。
不過,正則表達(dá)式是Linux世界的基石。舊的UNIX操作系統(tǒng)及Linux后續(xù)衍生版的核心原則之一就是大量使用文本。文本到處使用,用于配置、命令行上以及協(xié)議中。正則表達(dá)式幫助開發(fā)人員管理好文本。