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. Here are 10 cloud languages to 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.
Here's a SQL joke that developers everywhere will understand. "A man walks into a bar and sees two tables. He says, 'Can I join you?'"
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. Apache Hadoop configuration lives in XML files.
3: The R math language
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.
Apache Storm, the real-time data stream processor, is written in Clojure. Functional languages don't need the semi-colons that procedural languages do; you can see the semi-colons are only used for comments in this Clojure script.
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. Find out for yourself at the Try Haskell tutorial.
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.
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.
There are hundreds more
There are many more good languages to choose from. Try spending some time with a book like the 2010 classic "Seven Languages in Seven Weeks," which will run you through languages that include Prolog and Scala. Or, choose your own portfolio of languages.
- See if the R language fits in your big data toolkit
- Will Go give Java a run for its money?
- Sys admins, hone your DevOps skills by learning Python
- Web development using Go
- Explore GitHub Pages, a web developer's playground
- Developers are calling it quits on polyglot programming
Nick Hardiman builds and maintains the infrastructure required to run Internet services. Nick deals with the lower layers of the Internet - the machines, networks, operating systems, and applications. Nick's job stops there, and he hands over to the designers and developers who build the top layer that customers use.