The video on-demand of this session is available to logged in QCon attendees only. Please login to your QCon account to watch the session.

Session + Live Q&A

Keeping Pace with Java

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.

Main Takeaways

1 Find 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.

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


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.


Speaker

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:

Date

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

Track

Current and Future Java and JVM languages

Topics

JavaProgramming

Add to Calendar

Add to calendar

Share

From the same track

Session + Live Q&A Java

Techniques for Maintainable Quarkus Applications

Wednesday May 19 / 09:10AM EDT

Over time, different people will work on a distributed system to maintain its current behavior and adapt the solution to new use cases; all these team members should work productively. Join this session to find out some techniques to calm those noisy loggers, avoid memory leaks, or have better...

Ana Maria Mihalceanu

Solutions Architect @IBM & Java Champion

PANEL DISCUSSION + Live Q&A Java

Java & JVM Panel

Wednesday May 19 / 12:10PM EDT

The new release cadence of Java brings exciting new features at a more consistent pace, what are the next exciting features? What have been the strongest points of Java? What are we missing?

Simone Bordet

Lead Software Architect at Webtide LLC

Cay Horstmann

University Professor at PFH Private University of Applied Sciences

Session + Live Q&A kotlin

Kotlin is *Way* More Than Just Android

Wednesday May 19 / 11:10AM EDT

For many, whenever Kotlin is mentioned, it's assumed that an Android conversation is coming.  Many seem to assume that Kotlin is just an Android language.  But that's simply not true.  Kotlin is an amazing language with a rich ecosystem for writing server side applications...

Justin Lee

Java Champion and Principal Software Engineer @RedHat

View full Schedule