The Java platform and its virtual machine offer a nice and fertile soil for growing alternative languages beside Java itself. A few of them have gained significant traction and gathered an active and passionate user base, but with the fierce competition between them, it’s hard to keep on attracting new developers.
The Groovy programming language has now been out for 10 years, and has grown a very prolific and successful ecosystem around it, thanks to projects like the Grails web application framework, the Gradle build automation tool, the Spock testing framework, and more.
More recently, Spring Framework 4 has been ramping up its Groovy support, also showing how to write concise and effective applications in Groovy thanks to Spring Boot CLI. But we’ve also seen newer projects like Reactor add dedicated support for Groovy for creating reactive applications, or lightweight web toolkits like Ratpack making it easy to build micro-services in Groovy.
Back on the Groovy ecosystem, we’ve seen the Gradle build automation tool being adopted by Google for letting Android developers build applications with it, and big Web companies like Netflix bet on Grails for their cloud infrastructure platform needs.
With all those activities, projects, and companies evolving around Groovy in a way or another, it was interesting to reflect on the adoption rate of Groovy, and see how well the project was doing in terms of downloads, as well as how the various Groovy versions were being put to good use in developers’ hands.
Recently, I published the latest download statistics for 2013, compared them with 2012, and also looked at the breakdown of versions of Groovy being used as new major releases took place.
For 2012, Groovy was downloaded 1.7 million times. But 2013 was better. In 2013, Groovy crossed the 3 million downloads mark—almost doubling its user base!
Looking at the graphics above, we see a steady and sustained growth from 2012 to 2013, with 100K+ downloads a month at the beginning of 2012, up to 300K+ downloads a month at the end of 2013. The blue section are representing downloads from Codehaus, where the Groovy project is hosted. In green, we see the downloads of Groovy “as a dependency” from the Maven Central artifact repository. Both of these are the raw numbers, not aggregate so we added in a the yellow area where you can see the total of downloads, as well as a regression curve showing the general trends—showing the nice growth of usage. The peaks usually relate to major releases of Groovy, showing developers upgrading to newer versions relatively quickly.
This inspired me to look at the adoption rate of newer versions more closely. In the below chart, we see the ratio of the major versions of Groovy downloaded across 2012 and 2013, with each version from 1.5 to 2.2 in different colors. As a new release happens, we notice the cliff showing an adoption rate of about 3 to 4 months before a new major version is becoming the most used one. The old Groovy 1.8 is still present, but the Groovy 2+ versions are clear winners, with about 83% of usage, and as of last December. In fact, Groovy 2.2 is now slightly ahead of 2.1 with 40% vs 39% usage.
All in all, with 3 million downloads of Groovy in 2013, we can safely confirm that the momentum behind Groovy is very strong and that the adoption of Groovy as an alternative for the Java platform continues to grow, almost doubling its existing user base.