When people think of choosing a computer language, they probably pick one of the well-known, general-purpose procedural languages taught in schools, such as C, Java, or Python. But these regular suspects are just the tips of the computer language iceberg — if it uses keywords and a structure to communicate information, it's a language. Below are the 10 most useful cloud languages to be consider.
1: The SQL data language
When it comes to data languages, SQL has been the undisputed ruler for decades. Even non-relational database servers talk some form of SQL. The cloud is just as full of SQL as all other areas of IT.
2: The XML data language
XML is used to describe documents rather than deliver a stream of orders. Since XML doesn't usually order computers around, it isn't usually thought of as a computer language.
XML is the popular data markup language, and that's mainly because of Java. Where there's Java, there's XML. And since Java has been powering large-scale distributed systems since way before cloud was a computing thing, XML documents are everywhere.
3: The R math language
The R language helps developers with statistics, reports, and graphs. An interactive R tutorial exposes new developers to the joy of vectors, factors, and correlating data sets.
Amazon bundles the RStudio IDE with its EMR (Elastic MapReduce) service to help with big data analytics.
4: The Clojure math language
Clojure is not just a math language — it's both a general purpose and a functional language. It just so happens Clojure is popular with data analysts.
5: The Haskell functional language
Haskell is a functional language that is ideal for distributed computing, and a cloud Haskell platform project started a couple of years ago.
Even though Haskell has a fair adoption in industry and it's in the GitHub Top 20, Haskell take-up in the cloud so far is patchy — perhaps Haskell is perceived as being hard to learn.
6: The Erlang functional language
Erlang came out of Ericsson. In the telecoms industry, products have to stay up forever, and everything (customers, connections, transactions, and records) is counted in millions.
A carrier-grade functional language sounds like an ideal fit for cloud computing. And in fact, despite not making the GitHub Top 20, Erlang powers popular cloud applications, including Riak, CouchDB, RabbitMQ, and even the LING unikernel.
7: The Python procedural language
Python is a high-level language that was designed to be readable. These days, pretty much anyone — really, anyone — can get started with Python. Learning aids include classes, books, and even an interactive Python tutorial.
OpenStack, the favourite Infrastructure as a Service (IaaS) management software, is written in Python.
8: The Go procedural language
Go was created at Google a few years ago when some of Google's programmers were frustrated with languages such as Stroustrup's C++. Google provides an interactive Go tutorial and a Go Playground for getting to grips with the code.
Docker, the darling of cloud computing, is written in Go, along with many other projects in the Docker ecosystem.
9: The GFM domain-specific language
GFM (GitHub Flavored Markdown) is a plain text formatting language used to document repos on GitHub. GFM is used by millions of developers, because millions of developers use GitHub.
Because there are so many cloud-specific projects such as Cloud Foundry on GitHub, GFM is good to know. And it's probably the simplest to learn of all the languages in this list.
10: The regular expression domain-specific language
The regex (REGular EXpression) syntax is disturbing to newcomers because it is practically symbolic — instead of keywords, there are single characters. Regex code looks like someone fell asleep on the keyboard. If you want to be scared off the regex language for life, check out this extreme example — a JSON parser.
However, regular expressions are a pillar of the Linux world. One of the core principles of the old UNIX OS and its Linux successor is the heavy use of text. Text is used everywhere — for configuration, on the command line, and in protocols. Regular expressions help developers manage that text.