There have recently been two large JVM language polls (poll1, poll2). These polls have yielded some very interesting data. The results of the two polls differ due to differences between the audiences from which the voters were drawn. Clojure fared particularly well (ahead of Scala and Groovy) in the poll I ran due to many of the voters coming from the LISP friendly HackerNews community. The DZone poll which drew a slightly larger number of voters (primarily Java devs. from the dzone community) favoured Groovy, with Scala in second place, followed by Clojure. One thing which stands out in the results of both polls is the clear separation between “The Big Three” JVM languages (Scala, Clojure and Groovy) and the rest. This “Tier One” group represents alternative JVM languages which have garnered the most support among developers.
In order to get a better picture of popularity spanning both polls I combined the results and plotted a chart. “The Big Three” and JRuby (an honorable mention) are included in the chart. In the combined vote counts Scala, Clojure and Groovy are closely matched:
Popularity amongst developers does not always necessarily translate directly into commercial adoption. Indeed.com draws its data from a very large number of job websites and as such is an ideal source of data regarding commercial adoption. Running The Big Three languages through their job trends system yields some interesting results:
In the data both Groovy and Scala are showing signs of significant commercial adoption, with Clojure trailing. This is consistent with the DZone poll results and adds support to my theory that Clojure support draws heavily from hobbyists and lisp hackers rather than commercial organizations. Groovy comes out on top in this chart. The big three contains two dynamically typed languages (Groovy, Clojure) and one statically typed language (Scala).
The most encouraging outcome of the last few years has been the flourishing ecosystem around new JVM languages. A decade ago the CLR was being proclaimed as *the* runtime to support multiples languages. Thanks to the community the JVM is looking more and more like the preferred target for new languages, innovation and research.