1© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Java 10 & beyond:
Keeping up with the language and
planning for the future
Toomas Römer
Rod Cope
2© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Presenters
Rod Cope
CTO
rod.cope@roguewave.com
Toomas Römer
CTO, product development
toomas.romer@roguewave.com
3© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Agenda
• Short history of Java versions
• What’s new in Java 10
• Looking forward to Java 11
• Discussions
• Q&A
4© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Watch the full webinar
5© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Java history overview
• Java 5 – 2004
– Substantial language and API changes - Generics, Annotations, boxing, enum, varargs,
enhanced for
• Java 6 – 2006
– Incremental update
• Java 7 – 2011
– More language & API changes – switch on Strings, try-with-resources, …
– Support for dynamic languages
• Java 8 – 2014
– Language updates – Lambda expressions
• Java 9 – 2017
– Platform updates – Module system, JShell, new default GC
6© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Java history overview
• Java 10 – 2018
– Language changes - var type
– Strict six-month release cadence
• Java 11 – 2018
– Platform updates – decouple JavaFX, remove JavaEE, Corba
modules
7© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Java release cadence & support
• No public releases for Oracle JDK!
• Long Term Support releases (LTS) – every 3 years from Oracle
– Similar to previous major Java versions
– Next LTS is Java 11
• Feature releases – public ones for OpenJDK or other vendors
– Every 6 months, March and September
• Other options
– AdoptOpenJDK - https://adoptopenjdk.net
• 4 year LTS
– Azul Systems
• LTS, MTS, STS
– OpenLogic JDK support (Rogue Wave Software)
• Latest 4 major versions
8© 2018 Rogue Wave Software, Inc. All Rights Reserved.
The joy of STS, MTS & LTS
2013. 2014. 2015. 2016. 2017. 2018. 2019. 2020. 2021. 2022. 2023. 2024. 2025. 2026. 2027. 2028.
Java 18
Java 17
Java 16
Java 15
Java 14
Java 13
Java 12
Java 11
Java 10
Java 9
Java 8
Java 7
OpenJDK Oracle Public Oracle Extended AdoptOpenJDK Azul Zulu Enterprise
This is
now()
No more Public Oracle
release after Java 10
No overlap in
support for feature
releases
Source: Azul
9© 2018 Rogue Wave Software, Inc. All Rights Reserved.
So …
• Which version should I use as of today?
• Which vendor should I use as of today?
• Which version does my dev environment support?
• Which version is best for production?
• What should my upgrade policy be?
• …
10© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Some assumptions
• Best to to develop and run app with the same JVM version and
vendor
– Less surprises across the board
• Developers mostly like newer versions
– For reasons …
• Ops people like battle tested versions
– Can sleep better
11© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Maintaining mature
applications
12© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Maintaining mature applications
• Upgrade the JVM regularly
– Safe choice feeling
• Actively maintained version
• All the security fixes
– Exciting
• New language features
• Newer APIs
– Backwards compatible!
• Development tools
• Build tools
• Frameworks & Libraries
• Monitoring tools
• JVM flags
13© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Maintaining mature applications
• Don’t upgrade the JVM regularly
– Risks involved but $$$ will help
• Not actively maintained version
• Support contract to the rescue
• Might have issues with frameworks and libraries
– Not that exciting for developers but fine for mature applications
– Minimal investment to keeping up with the ecosystem
• Development tools
• Build tools
• Frameworks & Libraries
• Monitoring tools
• JVM flags
14© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Starting a new project
today!
15© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Starting a new project – Scenario A
• Assumptions
– Project will be in active development for 2 years
– Project will have a maintenance window of 10 years
• Decisions
– Which Java version to base this off of?
– Which Java vendor to go with?
– Which upgrade policy to choose?
16© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Application
deployment & support
17© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Application Deployment and Support
• You’re developing an app that you ship to your customer
– Which minimal JDK should it support?
– Which latest JDK should it support?
– Ship with a JRE?
– Ship as a container?
20© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Best practices to move
to microservices
21© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Best practices to move to
microservices
• Microservices is a trend that’s moving
quickly
– Improvements in virtualization,
containerization
– Improvements in tooling, provisioning,
orchestration
– Improvements in frameworks for
microservices
• You just need to keep up with it …
– Upgrade your Java to stay compatible
22© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Conclusions
• Java is moving at a really fast pace now
• Keeping up with it requires a solid plan
• Oracle is not the only option on the market
23© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Watch the full webinar
24© 2018 Rogue Wave Software, Inc. All Rights Reserved.
Reload code changes instantly
Skip time-consuming build & redeploy steps and avoid application restarts when testing
Try
zeroturnaround.com/jrebel/trial/
now
Keep pace with Java updates
25© 2018 Rogue Wave Software, Inc. All Rights Reserved.

Java 10 and beyond: Keeping up with the language and planning for the future

  • 1.
    1© 2018 RogueWave Software, Inc. All Rights Reserved. Java 10 & beyond: Keeping up with the language and planning for the future Toomas Römer Rod Cope
  • 2.
    2© 2018 RogueWave Software, Inc. All Rights Reserved. Presenters Rod Cope CTO rod.cope@roguewave.com Toomas Römer CTO, product development toomas.romer@roguewave.com
  • 3.
    3© 2018 RogueWave Software, Inc. All Rights Reserved. Agenda • Short history of Java versions • What’s new in Java 10 • Looking forward to Java 11 • Discussions • Q&A
  • 4.
    4© 2018 RogueWave Software, Inc. All Rights Reserved. Watch the full webinar
  • 5.
    5© 2018 RogueWave Software, Inc. All Rights Reserved. Java history overview • Java 5 – 2004 – Substantial language and API changes - Generics, Annotations, boxing, enum, varargs, enhanced for • Java 6 – 2006 – Incremental update • Java 7 – 2011 – More language & API changes – switch on Strings, try-with-resources, … – Support for dynamic languages • Java 8 – 2014 – Language updates – Lambda expressions • Java 9 – 2017 – Platform updates – Module system, JShell, new default GC
  • 6.
    6© 2018 RogueWave Software, Inc. All Rights Reserved. Java history overview • Java 10 – 2018 – Language changes - var type – Strict six-month release cadence • Java 11 – 2018 – Platform updates – decouple JavaFX, remove JavaEE, Corba modules
  • 7.
    7© 2018 RogueWave Software, Inc. All Rights Reserved. Java release cadence & support • No public releases for Oracle JDK! • Long Term Support releases (LTS) – every 3 years from Oracle – Similar to previous major Java versions – Next LTS is Java 11 • Feature releases – public ones for OpenJDK or other vendors – Every 6 months, March and September • Other options – AdoptOpenJDK - https://adoptopenjdk.net • 4 year LTS – Azul Systems • LTS, MTS, STS – OpenLogic JDK support (Rogue Wave Software) • Latest 4 major versions
  • 8.
    8© 2018 RogueWave Software, Inc. All Rights Reserved. The joy of STS, MTS & LTS 2013. 2014. 2015. 2016. 2017. 2018. 2019. 2020. 2021. 2022. 2023. 2024. 2025. 2026. 2027. 2028. Java 18 Java 17 Java 16 Java 15 Java 14 Java 13 Java 12 Java 11 Java 10 Java 9 Java 8 Java 7 OpenJDK Oracle Public Oracle Extended AdoptOpenJDK Azul Zulu Enterprise This is now() No more Public Oracle release after Java 10 No overlap in support for feature releases Source: Azul
  • 9.
    9© 2018 RogueWave Software, Inc. All Rights Reserved. So … • Which version should I use as of today? • Which vendor should I use as of today? • Which version does my dev environment support? • Which version is best for production? • What should my upgrade policy be? • …
  • 10.
    10© 2018 RogueWave Software, Inc. All Rights Reserved. Some assumptions • Best to to develop and run app with the same JVM version and vendor – Less surprises across the board • Developers mostly like newer versions – For reasons … • Ops people like battle tested versions – Can sleep better
  • 11.
    11© 2018 RogueWave Software, Inc. All Rights Reserved. Maintaining mature applications
  • 12.
    12© 2018 RogueWave Software, Inc. All Rights Reserved. Maintaining mature applications • Upgrade the JVM regularly – Safe choice feeling • Actively maintained version • All the security fixes – Exciting • New language features • Newer APIs – Backwards compatible! • Development tools • Build tools • Frameworks & Libraries • Monitoring tools • JVM flags
  • 13.
    13© 2018 RogueWave Software, Inc. All Rights Reserved. Maintaining mature applications • Don’t upgrade the JVM regularly – Risks involved but $$$ will help • Not actively maintained version • Support contract to the rescue • Might have issues with frameworks and libraries – Not that exciting for developers but fine for mature applications – Minimal investment to keeping up with the ecosystem • Development tools • Build tools • Frameworks & Libraries • Monitoring tools • JVM flags
  • 14.
    14© 2018 RogueWave Software, Inc. All Rights Reserved. Starting a new project today!
  • 15.
    15© 2018 RogueWave Software, Inc. All Rights Reserved. Starting a new project – Scenario A • Assumptions – Project will be in active development for 2 years – Project will have a maintenance window of 10 years • Decisions – Which Java version to base this off of? – Which Java vendor to go with? – Which upgrade policy to choose?
  • 16.
    16© 2018 RogueWave Software, Inc. All Rights Reserved. Application deployment & support
  • 17.
    17© 2018 RogueWave Software, Inc. All Rights Reserved. Application Deployment and Support • You’re developing an app that you ship to your customer – Which minimal JDK should it support? – Which latest JDK should it support? – Ship with a JRE? – Ship as a container?
  • 18.
    20© 2018 RogueWave Software, Inc. All Rights Reserved. Best practices to move to microservices
  • 19.
    21© 2018 RogueWave Software, Inc. All Rights Reserved. Best practices to move to microservices • Microservices is a trend that’s moving quickly – Improvements in virtualization, containerization – Improvements in tooling, provisioning, orchestration – Improvements in frameworks for microservices • You just need to keep up with it … – Upgrade your Java to stay compatible
  • 20.
    22© 2018 RogueWave Software, Inc. All Rights Reserved. Conclusions • Java is moving at a really fast pace now • Keeping up with it requires a solid plan • Oracle is not the only option on the market
  • 21.
    23© 2018 RogueWave Software, Inc. All Rights Reserved. Watch the full webinar
  • 22.
    24© 2018 RogueWave Software, Inc. All Rights Reserved. Reload code changes instantly Skip time-consuming build & redeploy steps and avoid application restarts when testing Try zeroturnaround.com/jrebel/trial/ now Keep pace with Java updates
  • 23.
    25© 2018 RogueWave Software, Inc. All Rights Reserved.