In association with heise online

Although it would only later become open source, the Java Virtual Machine was also influential. First Python and later Ruby were turned into JVM hosted languages, compiled on the JVM into JVM byte code and run on the JVM. Scripting languages could benefit from the JVM's just-in-time compilation and rich libraries. Others looked at this idea and went further, creating new languages such as Scala which are designed to be an alternative to Java itself.

Then along came the LLVM project, which initially appeared to tread in Java's space of having just-in-time or ahead-of-time compiling virtual machines but which has snowballed into a project that brings a whole range of compiler and analysis tools to the world of open source, most notably, the alternative C and C++ compiler Clang.The low-level VM parts of LLVM have also been used to create performance-boosted versions of some scripting languages.

And to one side of the snowball of open source languages, created as an almost unloved scripting language for the web, is JavaScript. After it was rediscovered by some developers in the the '00s, modern web development demanded that JavaScript go faster... And just-in-time compilers, analysers and tools appeared in the browser to do that. This in turn lead to people taking JavaScript and basing their own languages on it, such as CoffeeScript and TypeScript, compiling other languages into JavaScript and making JavaScript core to the HTML5 movement. JavaScript has now also jumped out of the browser thanks to Node.js, a JavaScript runtime built around Google's V8 JavaScript engine... an engine which was itself open source.

And at this point we reach the contemporary era of languages. The hunt for a better C has continued – C++, despite its widespread usage, never gained a fan base. Most prominent of the alternatives is Google's Go language which has been picking up fans for its expressive take on "what would C be if we made it now". Go takes the practical elements from object oriented and functional languages incorporated at a language rather than library level and puts them together in a language designed to be used in constructing the backend infrastructure of the web. Then there's Mozilla's Rust, a language built with the challenges of creating a solid safe and secure platform for building web browsers. Over in the world of the Java Virtual Machine, there are companies turning their experience in developing enterprise applications into languages built to develop those applications – Red Hat's Ceylon, JetBrains' Kotlin or on a smaller scale, Eclipse's Xtend.

Each one is carving out a domain for itself because open source has made the tools to create languages more readily available and put the techniques of language creation into the public arena. Now, open source is the default for language development and languages are created to fill particular needs. And it's the inversion, from creating the general purpose language to creating a set of purposeful languages which has been enabled in large part by the availability of open source components to build upon.

Which brings us around to where we started. What language should you learn or learn next? Flexibility is now the key, unless you already know what your next problem or challenge is. The future of programming is polyglottal; take a look at the results of this Dr Dobbs survey which shows how developers aren't just using one language in a day, but many languages. The thing to learn is programming, not in one language but in as many different idioms as you can reasonably apply your time to. Learn the styles and concerns, not the specific craft of a particular language until you need to become functional or fluent in that language. There will be more and more languages in the future; no one is going to suddenly say "That's enough". Languages are, if not a commodity, built with open source commodities and it's thanks to open source, at least in part, that we are now welcome to the new polyglot programmer age.

Are you ready to be a polyglot or do you want to hone your skills to sharpness on one language? You can have your say in The H's forums.
  • Twitter
  • Facebook
  • submit to slashdot
  • StumbleUpon
  • submit to reddit

  • July's Community Calendar

The H Open

The H Security

The H Developer

The H Internet Toolkit