人们想到选择一门计算机语言时,可能会选择学校里学到的知名度高的通用过程语言之一,比如C、Java或Python。但这些经常被人选择的语 言只是计算机语言领域的冰山一角而已――如果它使用关键字和结构来传达信息,那它就是一门语言。下面是值得考虑的十大云计算语言。
1. SQL数据语言
说到数据语言,SQL是几十年来无可争议的霸主。连非关系型数据库服务器也使用某种SQL语言。就跟IT的其他所有领域一样,云计算领域同样充斥着SQL。
这是每个地方的开发人员都会会心一笑的SQL玩笑。“有人走进一间酒吧,看到两张桌子。他说‘我可以跟你一起喝吗?’”
2. XML数据语言
XML用来描述文档,而不是传达一串指令。由于XML通常并不给计算机下达指令,它通常不被认为是一门计算机语言。
XML是大受欢迎的数据标记语言,而这主要归因于Java。只要有Java的地方,就有XML。又由于Java自从早在云计算大行其道之前就一直驱动大规模分布式系统,XML文档无处不在。Apache Hadoop配置就驻留在XML文件中。
3. R数学语言
R语言帮助广大开发人员处理统计数字、报告和图形。交互式R教程让新的开发人员领略向量、因子及关联数据集带来的乐趣。
亚马逊将RStudio集成开发环境(IDE)与其EMR(弹性MapReduce)服务捆绑起来,帮助进行大数据分析。
4. Clojure数学语言
Clojure不仅仅是一门数学语言,它既是一门通用语言,还是一门函数语言。另外说来也巧,Clojure在数据分析人员当中也大受欢迎。
实时数据流处理系统Apache Storm用Clojure编写而成。函数语言不需要分号,而过程语言需要分号;你能看到分号只用于这个Clojure脚本(https://github.com/apache/storm/blob/master/storm-core/src/clj/backtype/storm/clojure.clj)中的注释。
5.Haskell函数语言
Haskell是一门函数语言,就分布式计算而言再理想不过了;云Haskell平台项目在几年前就启动了。
尽管Haskell在业界有相当高的采用率,而且跻身GitHub前20门语言,但Haskell在云计算领域的采用情况差强人意――可能是Haskell被认为太难学会。你可以在Try Haskell教程中自己体验一把。
6. Erlang函数语言
Erlang脱胎于爱立信。在电信行业,产品必须永远持续运行,而任何东西(客户、联系、事务和记录)都以数百万计算。
电信级函数语言听起来非常适合云计算。而实际上,尽管没有跻身GitHub前20门语言,但Erlang驱动广受欢迎的云计算应用程序,包括Riak、CouchDB、RabbitMQ,甚至还有LING单内核。
7. Python过程语言
Python是一门旨在易于阅读的高级语言。这年头,几乎每个人、确实每个人都能从Python尽快上手。学习辅助手段包括:课程、图书,甚至交互式Python教程。
OpenStack是流行的基础设施即服务(IaaS)管理软件,它用Python编写而成。不妨看一下面向Nova客户界面的这段Python代码(https://github.com/openstack/python-novaclient/blob/master/novaclient/client.py)。
8. Go过程语言
几年前,谷歌开发了Go;当时谷歌的一些编程人员对Stroustrup的C++之类的语言颇为沮丧。谷歌提供了交互式Go教程和Go Playground,以便处理代码。
作为云计算领域的宠儿,Docker就是用Go编写而成的,Docker生态系统的其他许多项目也是如此。
9. GFM特定领域语言
GFM(GitHub Flavored Markdown)是一种明文格式语言,可用于记录GitHub上的软件库。GFM被数百万的开发人员所使用,因为数百万的开发人员使用GitHub。
由于GitHub上有那么多专门针对云的项目,比如Cloud Foundry,了解GFM是好事。它可能是本文介绍的十门语言中学起来最简单的。
10. 正则表达式特定领域语言
Regex(正则表达式)语法让新手很挠头,原因在于它其实是象征性的――只有单个字符,而不是关键字。正则表达式代码看起来某人在键盘上睡着了。如果你想一辈子不敢碰正则表达式语言,不妨看看这个极端例子:JSON解析器(http://www.perlmonks.org/?node_id=995856)。
不过,正则表达式是Linux世界的基石。旧的UNIX操作系统及Linux后续衍生版的核心原则之一就是大量使用文本。文本到处使用,用于配置、命令行上以及协议中。正则表达式帮助开发人员管理好文本。