JVM Ecosystem Report 2018

Simon Maple Andrew Binstock
October 17, 2018 | in Ecosystems, Open Source
| By Simon Maple, Andrew Binstock

Welcome to the largest survey ever of Java developers. The data presented in the following report was taken from more than 10,200 questionnaires. If you were one of those survey-takers, many thanks to you for putting aside the time to share your experience for the benefit of others.

This report is split into four posts:

  1. JVM Ecosystem report 2018 – About your JDK
  2. JVM Ecosystem report 2018 – About your Tools
  3. JVM Ecosystem report 2018 – About your Platform and Application
  4. JVM Ecosystem report 2018 – About your processes and you

We also have a lovely handcrafted pdf report which contains all of this information in one downloadable place.

DOWNLOAD THE JVM ECOSYSTEM 2018 REPORT!

Introduction

The survey was conducted by publishing its availability to the Java community at large (via social media primarily), to Java User Groups around the world, including the Virtual JUG, and to subscribers of Java Magazine, the bimonthly Java publication from Oracle Corp. As an inducement to complete the survey, a contribution to Devoxx4Kids was promised by the sponsors of the survey, Snyk and Oracle.

Devoxx4Kids organizes events worldwide where children can develop computer games, program robots and also have an introduction to electronics. Their goal is to introduce teenagers to programming, robotics and engineering in a fun way, to show teenagers that it is possible to do something more creative with computers.

Information regarding respondents, including geographical location, company size of their employer (if any), age, and experience with Java are presented at the end of this survey.

We appreciate constructive feedback and comments, especially regarding our analysis. If you would like to be contacted to participate in any future installments of this survey, please let us know. We hope you enjoy reading this report and can glean some useful insights from its findings.

Simon Maple and Andrew Binstock

TL;DR

Before we start, this is a fairly long report, so here’s a TL;DR overview of the main highlights. Of course there’s a lot more in the report, but if you only have 30 seconds then this image is your new best friend.

Test your Java applications for vulnerabilities

By requesting a test report, you consent to us emailing you occasionally about Snyk.
You can unsubscribe at any time, and we will never pass your email onto third parties.

About Your JDK

1. Which Java vendor’s JDK do you use in production for your main applications?

We start the report with a core question. With so many vendors providing their own JDK implementations, which offerings are developers using in production for their applications? We can see the dominance that Oracle JDK and OpenJDK have over everyone else. With 7 in 10 developers opting to use the Oracle JDK and a further 2 in 10 opting for the OpenJDK, there isn’t much competition. However, future licensing and support changes might cause these numbers to change in the future.

JDK vendor breakdown, including Oracle JDK and OpenJDK

2. Which Java SE version do you use in production for your main application?

There were significant structural changes to the JDK in Java 9 which many predicted would affect migration and adoption. We can see from the results (note that the survey was open midway between the releases of Java 10 and Java 11) that Java 8 is still the most dominant version of Java–almost 8 in 10 respondents say their main applications use it in production. Equally significant is that fewer than half the remaining non-Java 8 respondents are on a more recent version.

JDK versions that are being used in production, Java 8

3. How do you plan to respond to Java’s new release cycle?

While the Java 9 release brought with it some major architectural changes, it also introduced a new release cadence in which Java SE versions ship every six months. Every two to three years, a Long Term Support (LTS) release offers longer-term support, such as security updates, and so forth. Note that Java 9 is not an LTS release. This question asks how development teams will respond to this new release cadence. The responses were varied, suggesting there is still some uncertainty about how to proceed. In fact, almost 1 in 3 developers don’t yet know how they will respond to the new release cycle.

We expect that in the forthcoming year, best practices will emerge and companies will settle into a preferred migration cycle, which likely will vary considerably by industry. As a result, we expect that the “Don’t know yet” figure will drop, but we don’t know which of the other buckets will see increases.

Java migration plans since the LTS releases

4. What Java EE version do you use for your main applications?

Almost 4 in 10 respondents claim they do not use enterprise Java. Of those who do, the majority are on version 7. Java EE 8 was released in September 2017, so it’s promising to see that within less than a year of release it is almost the most popular version. Unlike Java SE, a release of Java EE takes a longer to be adopted because it takes longer for implementations to become available. In addition, app server vendors require time to adopt and implement the specifications.

We’ll be keen to see how these numbers shift as Jakarta EE 8 begins its rollout and adoption. We should spare a thought for the 2% who are struggling on J2EE–a version whose last major release was in 2003.

Java EE versions that people use in production, Java EE 7, Java EE 8

5. What is the principal JVM language you use for your main applications?

Exactly 9 in 10 JVM users are using Java for their main applications. While many projects today are defined as multilanguage or polyglot, the part on the JVM primarily runs Java.

Despite this strong preference for Java, JVM-based developers have consistently shown great interest in other JVM languages, as supported by the popularity of articles about them in Java Magazine and on major programming sites. For the last few years, the emerging and “hot” JVM language has been Kotlin, from JetBrains, which continues to make steady progress. It is now a supported language for development on Android, and it is the second major language for writing scripts for the build tool Gradle (behind Groovy). All this adoption has move Kotlin past Scala and just past Groovy in our survey.

JVM language popularity usage, including Java, Clijure, Kotlin, Groovy, Scala

The 3.0% figure for Clojure is remarkably high and signals–to us at least–the continued interest in functional programming. The functional orientation of many Java 8 features shows the imprint of functional programming on Java itself.

JDK Summary

  • 7 in 10 developers use the Oracle JDK in production
  • 2 in 10 developers use OpenJDK in production
  • 8 in 10 developers are on Java SE version 8 in production.
  • 1 in 10 developers have migrated to version 9 or higher
  • Almost 3 in 10 developers don’t know how to handle the new Java release cadence
  • Over 3 in 10 developers plan to only stay on the LTS releases of Java
  • Only 1 in 10 developers plan to stay on the latest version of Java
  • Almost 5 in 10 developers are on Java EE 7 or 8
  • Java EE 7 is still the most popular Enterprise version of Java with almost 3 in 10 developers using it
  • 9 in 10 JVM developers use Java
  • Kotlin edges past Groovy and Scala in language usage on 2.42%

There’s more to this report! Which section do you want to read next?

  1. JVM Ecosystem report 2018 – About your JDK
  2. JVM Ecosystem report 2018 – About your Tools
  3. JVM Ecosystem report 2018 – About your Platform and Application
  4. JVM Ecosystem report 2018 – About your processes and you

DOWNLOAD THE JVM ECOSYSTEM 2018 REPORT!