Java 13 is here! In the third and final part of our interview series, we talk to some of the experts about all the pros and cons of Java. Michael Simons, Tim Riemer, Michael Vitz, Sandra Parsick, Christian Schneider, Tim Zöller, and Hendrik Ebbers discuss what’s on their wish list for Java 14. What features would they like to see?
Although Java 13 is not a huge release in terms of new features, it comes with some upgrades and feature previews that are impressive.
Java 13 proves that 13 isn’t an unlucky number. Just like Java 12, it arrived right on time, adhering to the new release schedule.
Due to the faster release cadence, (every six months) this means that developers can postpone upgrading to the newest release until the next Long-Term Support (LTS) version.
Our Java experts
With several projects underway such as Valhalla, Amber, and Skara, Java 13 introduces five Java Ehnamcenet Proposals: JEP 350 (Dynamic CDS Archives), JEP 351 (ZGC: Uncommit Unused Memory), JEP 353 (Reimplement the Legacy Socket API), JEP 354 (Switch Expressions – Preview), and JEP 355 (Text Blocks – Preview).
Take a deep dive into all of the new features in this article by Falk Sippach. Sippach writes:
The goal is to finalize the preview features by the next LTS version so that they are stable enough and will look good for the next three years. In September 2021, Java 17 will take over the legacy of Java 8 and 11.
We spoke to some of the Java experts about the new features, their hopes for the next version, and how they feel about the new release cycle.
They discussed some of the pros and cons regarding the Java platform and the state of the JDK.
Let’s see what Michael Simons, Tim Riemer, Michael Vitz, Sandra Parsick, Christian Schneider, Tim Zoller, and Hendrik Ebbers want to see in Java 14. What features are on their future, ideal wish list?
7 experts speak: What would you like to see in Java 14?
Michael Simons: The resurrection of JavaFX in JDK.
Tim Riemer: Of course it would be lovely if the current preview features could achieve the GA state, so that you don’t have to explicitly active them. In addition, I would also wish for Value Types from Project Valhalla, and Pattern Matching from Project Amber as preview features.
Michael Vitz: They are currently working on many interesting things, which I would love to see in the near future. For instance, they are working on Fibern, lightweight threads, inside of Project Loom. Furthermore, they are working on Records (JEP 359), Value Objects (JEP 169), and Generics over Primitive Types (JEP 218), three features that could have a significant influence on how the language turns out, and simultaneously improve the performance on the JVM.
I suspect though, that Java 14 comes too soon for all these issues. The next LTS release, with Java 17 in September 2021, will be truly relevant, and all the features that are completed until then.
Sandra Parsick: For me it would be nice to see that the feature “text block” will introduce in Java 14 as non-preview feature.
Christian Schneider: I would like to see (JEP 169) value objects. They offer a lot of potential for Java in constrained environments and also make it a lot easier to deal with concurrency.
Tim Zöller: From all of the currently discussed JEPs, I find JEP 358 for the introduction of Records, and JEP 305 for Pattern Matching for the instanceof keyword to be the most interesting. But I couldn’t follow the latest discussions, and I cannot assess how realistic the chances for Java 14 are.
Hendrik Ebbers: Until now only one JEP is targetted for Java 14 but since there are some more months to go I assume that some other nice features will be added. For me, the next big feature that I would love to have as fast as possible is record (JEP 359).
Having such small classes to define immutable data will be awesome. Record will make a lot of code much more readable since all a lot of boilerplate code (“toString(), equals(), hashCode() …”) will just go away. Next to this records will work perfectly with the new “pattern matching” language features that are planned for Java.