Keeping Pace with Java

What You'll Learn

1Find out why it’s important to upgrade to a recent version of the JDK and not stay with the old one used when the project started.

2Learn how to safely upgrade to a more current JDK in production systems.bbb

What are the important aspects of the new Java release schedule – especially if you maintain production systems in the long run? How does a pragmatic and sustainable update strategy look like?

In this session, we try to answer these questions and try to give some practical advice on how to safely upgrade Java versions in critical production systems.

What is the work that you're doing today?

My day-to-day job is working on systems for railroad companies to control their railroad networks. We mostly use Java and work on large systems which have a very long life cycle. 10 to 20 years is a typical life cycle of such systems. While this sounds like legacy code these systems do a fantastic job in a fascinating domain.

And those are in Java?

Yes. mostly Java. Business logic is all implemented in Java.

Your topic is keeping up with Java. How does that fit in with your work if you're talking about systems of 10, 20 years of life cycle?

This is an interesting question. This is also the topic of my talk. Besides my day job, I do some FOSS work, especially in the JaCoCo project, which is a widely used code coverage tool. With that, I closely follow the latest developments in the JDK. These learnings help me to maintain and update large-scale applications. Nowadays with all the great developments, we get the feeling that everything is always built from scratch. You know these Silicon Valley ideas where startups are popping up every other week. But there's also a huge industry where you build systems for decades. And I think it's still possible to follow the latest platforms and the latest JVMs with such systems. And that's actually the goal of my talk, to combine the world of the systems with a long life cycle on one hand, and on the other hand, following the latest developments in the JVM and benefit from that for your projects. 

What are the risks of using Java for the next 10 years? Is it the deprecation of features, trying to catch up with things that are removed and stuff like that?

I wouldn't call it a risk, it's manageable. It's a risk if you don't care. The risk is if you just stay with Java 5 or even older if you don't follow the updates, and if you don't care about deprecated APIs. Or if you don't care about replaced javax.* packages. My advice is to continuously follow the development in Java, do a basic investment in the technical life cycle of your platforms and continuously cleanup for example deprecated API usage. Another big risk is to lose your developers because the developers don't want to work on a Java 5 codebase. If you build on modern platforms, you can keep and attract talent for your projects. .

So it requires constant vigilance and maintenance.

Absolutely. You have to be able to execute: To build your software, to test your software, to deploy it. Once you lose that capability you're done, you have no chance to update your platforms. You cannot just change to a different JVM. You need to be able to adjust your code base for new Java platforms.

Looking forward, what are you most excited about the Java world, features, new runtimes, products, any things like that?

For the runtime environments, a lot of standards have been established in the industry and we have a great choice of deployment options and tools. What I'm currently most excited about is to see the same for development environments: Instant IDEs with all the runtime tools development, testing, and debugging available. For example tools like Gitpod or GitHub Workspaces. With a click on a button, a development environment is started for you in a docker container and you get instant access to a nice user interface for development tasks. I could imagine that such ways of development setups will be very useful for large legacy projects, where you often need different proprietary dependencies in your environment.


Marc Hoffmann

Managing Director at mtrail
Java Champion Marc R. Hoffmann was involved in on various FOSS and commercial Java projects since the very beginning in 1996. In his spare time he created the free code coverage tool JaCoCo. This includes keeping up and testing with the latest Java releases.In his day job Marc R. Hoffmann is CTO... Read more Find Marc Hoffmann at:

Wednesday May 19 / 10:10AM EDT (40 minutes)

TRACK Current and Future Java and JVM languages TOPICS JavaProgramming ADD TO CALENDAR Calendar IconAdd to calendar