JAX enter: How do you feel about the new six-month cycle and the new rhythm? After all, Java 10 was the fastest release in Java’s 23-year history and now we’re already 2 months away from Java 11.
I’m all for small, frequent changes. The software industry has discovered that this makes feature delivery both faster and safer, and Java is no exception. “Fix the date, scope will vary.”
JAX enter: Do you think the new release cadence will lead to fatigue or is it just keeping developers on their toes?
If it leads to fatigue, then I hope that fatigue will lead to automation. The world changes around our applications, and our applications and infrastructure need to keep up. The JVM team is keeping our runtime up to date, and all we have to do is install it and test — so automate installation and tests! Modern software infrastructure is quickly replaceable, and the pace of the JDK adds value and takes advantage of that.
The removal of CORBA and enhancement of HTTP and TLS are examples of how Java is keeping up with the modern world, and keeping up its own ability to change by reducing its own maintenance burdens. The removal of long-deprecated features is a signal that the Java team is serious about the future. Various enhancements targeted at compiler authors (like 181 and 309) enable even more improvements. Java is a solid foundation for serious applications, now and in the future.
JAX enter: Describe your favorite Java 11 feature.
I’m tickled by Epsilon, the no-op garbage collector. Along with Flight Recorder and heap sampling, the JVM is becoming more introspectable and testable. The no-op garbage collector lets people find their own latency problems, disambiguated from GC pause. It also lets short-running programs dispense with the ongoing cost of GC. In a containerized world, “The JVM shut down” is not disaster: kubernetes will restart it.
JAX enter: Java 11 will be “lighter” in the sense that JavaFX will soon be decoupled from the JDK, we’re saying goodbye to Java EE modules and Nashorn JavaScript engine will be deprecated. What’s left to axe? (I’m not answering this exact question, but do have something to say)
We used to use Nashorn before its deprecation was announced, and now we run Node in production — a circumstance that helps us appreciate the professionalism of Java and the JVM even more. It makes sense to decouple the JDK from the separate pace of movement of other ecosystems like JavaScript. like microservices, this is a decoupling of release schedules that gives the JVM more flexibility.
JAX enter: A lot of developers are still using Java 8. What does this mean for Java 11 adoption? Do you think Java 11 will be important or big enough to make them want to drop Java 8?
Nope. They can catch up at the pace their company chooses to move at.
JAX enter: Speaking of Java 8, public updates will remain available for individual, personal use through at least the end of 2020 but business users won’t be that lucky — the ‘public updates’ tap will be turned off in January 2019. A lot of Java developers believe that this decision is “ruining Java”. What’s your take on that?
If by “ruining Java” they mean “taking away my ability to live in the past forever and expect everything to continue to work” then yes, they’re right. Keeping software running as computers and people change is expensive. Software is not a capital expenditure, and as long as we model it that way, we will feel dissonance.