Let a thousand languages bloom and cross-pollinate
Microsoft could be right โ maybe we will write our projects in seven languages for one platform. Whenย interviewing language inventors Gavin King (Ceylon), Rich Hickey (Clojure), and Charles Nutter (Ruby)ย for my previous article, one detail stuck out. For the most part, they take on faith the idea of โpolyglotโ software development.
Years ago, the former chair of the ECMA .Net CLI standards board, Sam Ruby, gave a talk to theย Triangle Java Users Group. He ended his presentation on .Net with a cheeky quote that I paraphrase from memory: โIf you want to write one project in seven languages for one platform, choose .Net. If you want to write one project in one language for seven platforms, chooseย Java.โ The user group responded to this dig at Microsoft with a standing ovation.
For a long time, mission-critical business software was written in Cobol and/or RPG if it was on the mainframe. PC programming was a much more fragmented market, and you saw waves ofย C/C++ย give way to scripting languages, Perl, and so on. For a decade, we had a period of relative stability with Java, Visual Basic/ASP, and later .Net, with .Netโs support of multiple languages more hype than practice. Just as plain old Java ruled the roost, while other JVM languages were rarely used to create business software, most .Net software was written in C#.
But times have changed and the language market is more fragmented.ย Java has retreated from its dominant positionย in 2001 and is declining in use. Ruby has overtaken C# in projections of long-term trends. Meanwhile, languages like Clojure, Scala, and others have become the talk of the town among self-proclaimed alpha geeks, though theyโve yet to make much of a market impact and weโve only begun to see these languages put to task in real projects.
A few weeks ago, I asked Gavin King and Charles Nutter about whether the market, in terms of languages, was becoming more fractured. Nutter said, โI donโt see it as fractured โฆ I see it as diverse.โ
King agreed: โโFracturedโ in what sense? People have been experimenting with new languages since the dawn of computing. Most of these โnewโ languages weโre talking about have been around for quite a number of years.โ
Neither saw this state of affairs as likely to coalesce again into a few dominant languages. Instead, they saw this diversity as a fertile ground of ideas in which languages will share innovation with each other.
According to King, โA whole lot of cross-pollination goes on, and you see some kind of convergence in the space of language features, in the sense that some things that turn out to be good ideas are rapidly (or slowly) adopted by many languages.โ Nutter believes โthe day is rapidly approaching where we will see much greater collaboration between the various JVM languages.โ To that end, Nutter participates inย a JVM languages groupย with other developers.
That said, itโs easy to overhype the language explosion. Thereโs a lot of talk about these โnewโ languages, but their overall market share, while growing, is still less thanย 1 percent, with the exception of Ruby.
Itโs hard to imagine another decade of a single language ruling them all. If Nutter and King are right, then there will be no replacement for Java. Instead, as Sam Ruby once scoffed, weโll use โseven languages to create one programโ and probably, for one platform: theย Web cloud.


