There's a right way and a wrong way to choose a portfolio of programming languages to use. Here's guidance for cloud developers on the following the right way.
The knowledge forum Big Think recorded a video with Bjarne Stroustrup, creator of the C++ programming language: "What are the five most important languages that programmers should know?" He said, "Nobody should call themselves a professional if they know only one language."
So in Stroustrup's opinion, it's no good saying, "I love Perl. There is only one language, and that is Perl." If entry-level developers have nailed their first language and want to get serious in the cloud computing world, they need a portfolio of programming languages to call their own. But which ones? What programming languages should a cloud developer pick?
Pick languages by popularity?
If a young apprentice developer needs to earn money, he can search for the top languages requested by employers. The IEEE Top Programming Languages app (requires sign-up) gives a breakdown of these languages.
It's also tempting to go for the most popular languages. The top 20 programming languages on GitHub summarizes what's happening in their repos.
However, picking languages this way leads to a patchy programming portfolio. It's a problem partly because a developer does not end up with a good spread of language types (it's slanted towards general-purpose languages), and partly because it hides the gory details of development.
A wannabe Microsoft Azure developer needs to be able to develop a complete system. A good Microsoft dev may be familiar with this language collection: C#, HTML5, LINQ, NHibernate, and ASP.NET. What? They are not all languages? But they all contain language. If it has a vocabulary, a formal syntax, and requires coding by a developer, it's a language.
Pick languages by category!
If a developer really wants to get serious with a good spread of language expertise, they should find languages they love in these five categories. Ten language examples are included to help the blossoming programmer get started.
Data is the core of all cloud computing (look at IoT and big data) — that makes a data language the most important kind of language. UML and SGML are descriptive languages used for data modeling. HTTP contains CRUD (Create, Replace, Update and Delete) commands for data manipulation.
A math language is the alchemist tool that turns big data into business gold. And there's plenty of data in the cloud. Mathematicians love MATLAB and R. Not only is Fortran the oldest example, it's also one of the oldest programming languages of any kind.
That's functional as in mathematical function, not programming function. A general-purpose functional language often contains math language features. You won't find much LISP (the oldest functional language) in cloud computing, but you will find plenty of Clojure (the newest).
Domain-specific languages are the miscellaneous collection of the language world. "Domain-specific" is one of those useful yet fuzzy collective terms. You could say every language lies in some domain — for example, all math languages are in the math domain. However, it's usually a term applied to small languages that solve specific problems.
One popular collection of domain-specific languages lies at the interface between cloud and human: the web. A front-end developer may use one general-purpose programming language — say, PHP — and a bunch of domain-specific markup languages — such as CSS, HTML, SOAP, and YAML — to make a site work.
Doing it for love, or for money?
Choosing a portfolio of programming languages is easier for the newcomer than for the established developer. The scale of cloud computing means the work is done by commercial teams, not by individuals. And when it comes down to paying the bills, a developer has to use the languages required by an employer.
On the other hand, if an experienced developer wants to learn new tricks, they can pick an open source cloud project to contribute to in their spare time. The choice is huge, and they can pick any language they fancy. If this idea appeals to you, go to OpenHatch and ask for help.
If you are having a little difficulty nailing down your choices, TechRepublic can help. Look out for our upcoming article on 10 cool programming languages used in cloud computing.
- A portrait of the modern cloud developer
- Software development tools, from Stone Age to cloud age
- PaaS: The cloud layer targeting app developers
- Tips on choosing a programming language to learn