With Java 11 around the corner, and release candidate builds available at http://jdk.java.net/11 , it’s time to look back at the effect the new release cadence has had on adoption of new releases.
New Java releases used to take quite a while to get adopted by developers. For example, Java SE 5.0 introduced major changes such as annotations and generics to the Java programming language in 2004. It subsequently took two years, until 2006, for an Eclipse IDE release that was tested and validated on Java SE 5.0. Only then were developers using Eclipse able to begin adopting Java SE 5.0 in earnest as their primary platform.
A lot has changed in the Java ecosystem in the decade since 2004. Java SE 8 was released in 2014, introducing another major change to the Java programming language, namely lambda expressions. Yet within days new releases of the Eclipse, InteliJ IDEA, and NetBeans IDEs, tested and validated on JDK 8, were available to developers. Developers could thus begin adopting Java SE 8 almost immediately after its release.
And many did, making Java SE 8 the most rapidly adopted release at that time. The number of JDK 8 downloads increased by more than 30% in comparison to JDK 7 during the same initial launch period.
In addition, JDK 8 established the pattern of roughly semi-annual, large update releases. The 8u20, 8u40 and 8u60 releases each delivered hundreds of bug fixes and other changes along with multiple new features. Prior to JDK 8, both JDK 6 and JDK 7 updates have included large individual update releases with hundreds of bug fixes and other changes, as well.
With the new semi-annual Java SE release cadence since Java SE 9, we’ve seen the same pattern of rapid support for new Java platform releases by the major IDEs. In addition, Oracle engineers continue to work together with the developers of more than 100 popular open source Java libraries and tools across the ecosystem to remove potential barriers to adoption of new releases.
Accordingly, many popular libraries and tools were ready for Java 9 by the time it was released, or shortly thereafter. That included popular tools such as Apache Ant, Apache Maven, Gradle, libraries such as ByteBuddy, JUnit, jaCoCo, Apache Lucene and frameworks such as Akka, Spring Framework and WildFly.
Consequently, the number of JDK 9 downloads in the launch of Java SE 9 release was more than 10% higher than for the JDK 8 launch.
We saw a similar pattern among developers with JDK 10. The Java SE 10 saw 20% more JDK downloads than for JDK 8 in the same timeframe during the Java SE 8 launch. As with JDK 9, popular IDEs, tools, libraries and frameworks rapidly announced their support for the new Java release.
This shows how a major aspect of the new release cadence is working out amazingly well — it really is getting new Java features, such as local variable type inference in Java SE 10, into the hands of more Java developers much faster than before.
In the past, each new Java platform release would take several years to develop, and in the process accumulate thousands of large and small enhancements, changes and bug fixes. It would take long to build and then it would take long to get familiar with, due to the very large scope of each release.
Under the new release cadence, each Java feature release is delivered in a fraction of time that it took in the past, and accordingly each release is much smaller in scope. As a consequence, the time it takes to get familiar with it is much shorter, as there are far fewer changes to digest. In practice this means that many of the popular tools, libraries and frameworks that were ready for Java SE 9 and Java SE 10 have already been able to get ready for Java SE 11.
In other words, from Spring Boot and Spring Framework, via Mockito and ByteBuddy, to Apache Cassandra, IntelliJ IDEA, Jenkins, Eclipse IDE, and Atlassian, large parts of the Java ecosystem have announced that they are ready for Java SE 11, or that they are already working to support it.
Given that’s the case, it should come as no surprise that a recent survey by the Java Community Process Executive Committee found that more than the half of respondents are considering using Java SE 11 for deployment in the near future.
For users that need to adopt new releases more conservatively, Oracle has recently introduced Java SE Subscription: a simple, low-cost monthly subscription that includes Java SE Licensing and Support for use on Desktops, Servers or Cloud deployments. The subscription provides access to tested and certified performance, stability, and security updates for Java SE, directly from Oracle. It also includes access to My Oracle Support (MOS) 24x7, support in 27 languages, Java SE 8 Desktop management, monitoring, and deployment features, among other benefits.
Oracle’s Java SE 11 product is a long-term support (LTS) release. Java SE Subscription allows such users to get updates on LTS releases and remain in a given LTS release version for at least eight years. Organizations can easily add-on to their subscriptions at any time as they move workloads from development to production.
Users that don’t need to adopt new platform releases conservatively, on the other hand, can continue to enjoy the benefits of a fast Java release cadence, as was the case with JDK 9, and JDK 10, using the thoroughly tested, open source OpenJDK builds provided by Oracle, as we continue to move the Java platform forward, faster, with the OpenJDK Community.