More has happened in Java in the last year than during the past ten years. Oracle’s thoughtful stewardship has delivered enhancements focused on ongoing platform completeness, and Mark Reinhold’s keynote at Oracle Code One made clear that Java continues to be open and free.
Reinhold, Oracle’s chief architect of the Java platform, reassured the faithful that Java is better than ever, with an active community and full parity between commercial and open source Java Development Kits (JDKs). “Don’t worry, Java’s still free,” he said—earning immediate praise on Twitter.
After an effusive love letter to Java from Matthew McCollough, GitHub vice president of field services, that proved the maxim “when web companies grow up, they become Java shops,” Reinhold took to the stage for a demo of new features. What were the three biggest changes of the last year?
First, he said, came the process of splitting the huge, 23-year-old platform into 26 standard modules. To help move the platform faster in areas that are relevant to developers, Reinhold explained why CORBA and Java Enterprise Edition (EE) modules that were part of Java Standard Edition (SE) were removed. Finally, with input from the community, he explained how the replacement of the multiyear release model with a rapid six-month cadence announced last year benefits developers.
If participation is a measure of health, then JDK 11—the September 2018 release—is thriving. Reinhold said: “JDK 11 has had the most outside contributions of any release we’ve seen.”
Addressing Five Bits of FUD
Reinhold went on to address the top five misconceptions (otherwise known as fear, uncertainty, and doubt, or FUD) about the new Java release model:
1. Every feature release will be as disruptive as past releases. “No, that’s not true,” he said. “The rate of innovation hasn’t changed. What’s changed is the rate of innovation delivery.”
2. Non-LTS (long-term support) releases are just a fancy name for a beta. “No. The only difference with an LTS release is it has a longer [three-year] support timeline,” Reinhold said. “You can use a non-LTS release in production if you like, but know that you’ll have to update it in six months, or find someone to support it, or perhaps support it yourself.”
3. To remove an old feature, it must be deprecated three years in advance. “False. To remove a deprecated feature requires a production-ready build that issues a suitable warning at either compile time or runtime—because a working build, after all, is the ultimate release method.”
4. If you maintain an infrequently migrated system you can ignore the non-LTS releases. “That would be a bad plan,” Reinhold said. “If you test with each feature release, then you’ll be ready to migrate to the next long-term support release.”
5. You can’t get more than six months of support for any non-LTS release and never more than three years for any LTS release. “Not true. It all depends on what the non-Oracle members of the JDK community decide to do. They have a proven track record and are already discussing how best to support JDK 8 and JDK 11 for the long haul.”
Reinhold spent the remainder of the keynote showing a live demo of future projects such as Valhalla, Panama, Amber, and Loom.
Valhalla introduces value types and generic specialization to enable higher-performance, cache-friendly data structures. Panama facilitates the connections between Java programs and well-defined but “foreign” (non-Java) code and data. Amber explores productivity-oriented Java language features such as raw string literals, switch expressions, pattern matching, and records.
“What Amber seeks to provide is a series of language features that let you express more clearly what you mean,” Reinhold said. “As a result of trying to express more clearly what you mean, the boilerplate tends to take care of itself. It’s important to note—we’re not optimizing boilerplate, we want to keep things readable.”
Finally, Loom introduces lightweight user-mode threads, called “fibers,” to enable simpler, more efficient concurrent code. As Reinhold demonstrated fibers, he pulled up a performance graph of the live results, then zoomed in on the fibers, which fired in mere milliseconds. “It’s actually kind of hard to see the fibers data, because the threads data is so large in magnitude.”
The Source of Truth
Reinhold’s ability to demo all of the experimental features on stage earned him props from Java developers.
“I stopped reading a lot of blogs in the last six months because there was so much misinformation out there about Oracle licensing and the JDK cycle,” said Paul Webber, who has been president of the San Diego Java Users Group since 2001. “This was a keynote from a responsible source—he is probably the source of truth—to get rid of the misconceptions. He knows his stuff, so that adds to the credibility of the presentation.”