New versions of Java are coming out every 6 months now. What has changed, should we upgrade, and if so, how?
(Updated 7 May, 2020)
Wasn’t Java 8 a fantastic update to the language? Lambdas and streams were a huge change and have helped to improve Java developers’ productivity and introduce some functional ideas to the language. Then came Java 9… and although the module system is really interesting for certain types of applications, the lack of exciting language features and uncertainty around how painful it might be to migrate to Java 9 left many applications taking a wait-and-see approach, happy with Java 8.
But now Java has a new version every six months, and suddenly Java 14 is here. We’re all still on Java 8, wondering
whether we should move to a later version, which one to choose, and how painful it might be to upgrade.
In this session we’ll look at:
Why upgrade from Java 8, including language features from Java 9-14
What sorts of issues might we run into if we do choose to upgrade
How the support and license changes that came in with Java 11 might impact us.
There are two main versions of this. The most recent, at GOTO Amsterdam, gives the most comprehensive coverage of the
license and support changes:
The other version was from DevoxxUK. This probably has marginally fewer errors when
I try to demo JShell, if I recall correctly.
There’s another older video here, which contains a transcript
(might be useful if you don’t want to actually watch the whole thing!).
My video course on Moving to Java 9 is
available on Safari or can be purchased via
This has details about the features from Java 9 that are most interesting to Java developers, and a guide on
how to migrate to Java 9. Of course, this is still valid even when migrating to Java 11, although there may be
one or two additional gotchas now.