BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Is Java 17 a Glass Half Full?

Is Java 17 a Glass Half Full?

This item in japanese

Lire ce contenu en français

Bookmarks

Oracle recently announced that JDK 17 has entered Rampdown Phase 2.

This phase means the overall feature set is frozen and no further JEPs will be targeted to this release.

The final list of features arriving in JDK 17 is:

Java 17 is the next Long-Term Support (LTS) release, and is due in September 2021.

Oracle's stated opinion is that there's nothing special about LTS releases, and they merely correspond to an Oracle support product and should not be significant to anyone who is not a paying customer that buys support from Oracle.

The Java ecosystem and community, however, has so far not aligned with Oracle's messaging.

There is no evidence that many teams are upgrading their Java version to match the major release number on a six-month cadence. Data from New Relic's customer base (containing tens of millions of production JVMs) indicates that no non-LTS Java version has ever achieved more than a 1.5% market share, and most non-LTS Java versions quickly fall back to the 0 - 0.5% range within a few months of release.

Instead, the market as a whole is continuing to use Java 8 and 11 even if it means moving away from Oracle and relying on another vendor to supply incremental updates of 8 and 11. The two LTS versions are now approaching an even split of market share (with non-LTS versions below the level of statistical noise). This represents a much slower uptake of Java 11 (three years to roughly 50% market share) as compared to the speed with which Java 8 was adopted.

Overall, the features present in Java 17 are broadly following the expected pattern, as InfoQ previously reported on. The unfortunate truth is that of the major projects that have been the major areas of JDK development in the last three years (Loom, Valhalla, Amber and Panama) - none are complete as of the release of Java 17.

This means that the feature set of Java 17 will be more modest than many developers hoped.

For example, The Algebraic Data Types feature (comprising Records and Sealed Types) is complete as of 17. This is a major step forward in terms of data modeling and enhancing the OO capabilities of the Java language. However, the Pattern Matching feature which complements and builds upon algebraic data types is only present as a Preview feature in Java 17 (and only in a fairly rudimentary form at that).

This is only a partial delivery of Project Amber - and Amber has the advantage that the project structure lends itself pretty well to incremental delivery. Projects like Loom and Valhalla - which are much more "Big Bang" in nature - are essentially not present at all in Java 17 (apart from some preliminary groundwork that does not really surface any new user-accessible features).

On a more optimistic note, if the established pattern of the majority only upgrading LTS to LTS continues (and we have no indications that the community will do anything else), then teams who upgrade from Java 11 to 17 will still find plenty of upside. The major features that are likely to be of interest to developers who upgrade are:

  • Switch Expressions
  • Enhanced instanceof
  • Text Blocks
  • Records
  • Sealed Types
  • JFR Streaming
  • Enhanced Modern Cryptography
  • Class Data Sharing
  • Shenandoah and ZGC Garbage Collectors

as well as a great many performance and other internal improvements.

This means that while Java 17 may be a "glass half full" release, it does represent another major milestone in the evolution of the language.

Feature-complete betas are available for download here and the final version of Java 17 is expected to be released on September 14th.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Text Blocks is a game changer

    by Michele Mauro,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    For some categories of SQL-heavy applications (yes, many of us still make a business out of them) Text Blocks will be a game changer.

  • Just gotta be patient

    by Cameron Purdy,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Java has been moving like clock-work. The releases have been predictable, and the quality has been pretty good, considering the size of some of the changes going in.

    It's OK that people are holding back ... Java is a mature ecosystem, and it costs a lot to stay current, because the code bases are so large, and so intertwined with everything. The Java 17 release will hopefully be like the Java 8 release, i.e. a release that lots of people end up using over time.

    And for developers who want to stay at the leading edge, they get a new feature release every 6 months. Not a bad deal for a language that is this mature.

    When most languages reach this stage of their life, they have completely stopped evolving. Java is still moving at "warp speed" compared to most of the tech from its generation, and it's somehow managing to do that while mostly maintaining backwards compatibility.

  • Better to postpone the release by an year

    by Amit Kumar,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    We definitely need more features in LTS versions specially from loom and valhalla. It'll be much better if java19 is declared LTS. This will give an year's time for development, given the fact that no one is going to jump to v17 in a hurry when you know java8 is still the king in enterprises.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT