It’s always interesting to see the results from surveys of developers to see who’s using what and how. Of course, the first thing to remember before even looking at the details is that there are “lies, damn lies and statistics”. That’s not to say that surveys are being deliberately misleading, just that you need to carefully consider the sample size and methodology used to generate the results.
Recently, several surveys have been published, some specific to the Java ecosystem and some addressing software development in general. I thought it would be worth providing some commentary on this, hence this blog.
Let’s start with the Snyk JVM Ecosystem Report, which included input and cooperation from Azul. As the introduction explains, the idea was to focus just on the crucial aspects of JVM usage, hence a small number of questions. The survey also allowed respondents to select more than one response to a question. In my experience, most Java users have more than one version deployed, so this helps give a clearer view of real-world usage.
Two years ago, Gartner predicted that by the end of 2022, at least 80% of JDK production deployments would come from non-Oracle OpenJDK distributions. Looking at the results of the first question shows that this is well on track to be accurate, as less than a quarter of respondents selected the Oracle JDK as an answer. In addition, 40% also said that they use more than one JDK provider in production, which I certainly recognize from customer conversations. From Azul’s perspective, it’s good to see that our JVM builds are gaining popularity very rapidly. Comparing last year’s survey results to this, we see a growth from 4% in 2020 to 18.1% in 2021 (combined Zulu and Zing usage, now branded as Zulu and Zulu Prime builds of OpenJDK).
The JDK version in production use showed very predictable results; the vast majority of users have opted to follow the long-term support (LTS) strategy that all distributions are following. There is still some residual use of JDK 6 and 7, which I see in some customers, but JDK 8 and 11 are about evenly split. This is encouraging because it shows that the transition to JDK 11 (including the module system and encapsulation of internal JDK APIs) is not holding users back. The version in development use is more revealing as it shows higher use of 11, which will translate into greater use in production. Next year’s survey will be particularly interesting as JDK 17, the next LTS version, will have been released.
I’m not surprised to see over 10% using JDK 15 in production (the most recent at the time of the survey). This shows that there are developers for whom CI/CD (and containerized microservices) make it practical to switch to a new JDK version every six months. Remember, Azul also provide our medium-term support (MTS) for this version.
Java is still by far the most popular language to use for JVM-based applications. Kotlin is in second place but a long way behind. What does surprise me a little is that Clojure is so close to Scala (a difference of only 1.6%). I would have expected Scala to be further ahead. However, the number of repositories on Github shows a different picture, with twice as many for Scala as for Clojure.
As a platform, Java is still hugely popular and shows no sign of decline in this respect. The recent State of the Developer Ecosystem report from JetBrains gives evidence of this. JavaScript was the most popular language in use by this survey’s respondents, with Python second only slightly ahead of Java in third place. Other surveys like TIOBE show C as the most popular language currently with Java in second and Python in third. Redmonk’s January index also has the top three as JavaScript, Python and Java respectively. It seems that however you measure it, Java is very near the top.
The key takeaways from these results are that Java as a platform and a language continues to be extremely popular in mission-critical enterprise architectures. Most people are opting to follow the cadence of LTS releases, and there are plenty of options for distributions of OpenJDK to use, which continues to drive vibrancy and momentum in the Java platform. Java is no longer just Oracle, but with so many firms heavily invested in it (e.g. Red Hat, Amazon, Alibaba and Microsoft) this is a platform that will continue to be dominant in the enterprise and cloud space.
If you’re looking for a commercially supported distribution with SLAs, stabilised, security-only updates and builds all the way back to JDK 6, why not consider Azul Platform Core? We also support other OpenJDK distributions like the recently released Temurin builds of the Eclipse Adoptium project. Contact us if you want to know more.
New Features in JDK 17
See how the Java platform has changed with JDK 17 and since the last LTS, JDK 11