Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Choosing the Right Java Version & Strategy

Choosing the Right Java Version & Strategy

With Chandra Guntur

Jeanne Boyarsky

September 19, 2019
Tweet

More Decks by Jeanne Boyarsky

Other Decks in Programming

Transcript

  1. @CGuntur @JeanneBoyarsky Choosing the Right Java Vendor & Strategy Jeanne

    Boyarsky & Chandra Guntur Oracle Code One (9/19/19) DEV1969 speakerdeck.com/boyarsky
 speakerdeck.com/cguntur 1
  2. @CGuntur @JeanneBoyarsky About Us • 3 Java 8 cert books

    • Java 11 cert books coming soon • CodeRanch moderator 2 • JCP EC rep for BNY Mellon • Contributor to eclipse-collections • Code Katas • Java Champions • Combined 35 years Java development • Leaders of NYJavaSIG • Blog & Tweet regularly
  3. @CGuntur @JeanneBoyarsky Thursday Recommendations 3 Time Title Speaker(s) 11:15-12:00 JVM

    Comparison: Benchmark Performance of Different JDK/ JVM Combos Donald Raab & Chandra Guntur 10:00-10:45 Do it yourself collections Nikhil Nanivadekar 12:15-1:00 Making Java a First Class Citizen with ML Moderated by Frank Greco
 with 
 IBM, Oracle, Amazon & Azul 3:15-4:00 Java 13: Shaping the Future of Java, Faster Sharat Chander & Aurelio Garcia-Riberyo
  4. @CGuntur @JeanneBoyarsky History 6 Java 8 2014 Hi Oracle 2010

    Java 7 2011 Til Java 6 1996-2006 Java 9 2017
  5. @CGuntur @JeanneBoyarsky Java School Report Card Features Developer Community A+

    B Predictability of Release Frequency of Release F D < 2014
  6. @CGuntur @JeanneBoyarsky JDK School Report Card Polyglot Programming Scalability &

    Performance B A Predictability of Release Frequency of Release F D 2014-2018
  7. @CGuntur @JeanneBoyarsky With New Release Model Agile Developer Community A+

    A Predictability of Release Frequency of Release A A 2019+
  8. @CGuntur @JeanneBoyarsky OpenJDK Release Cadence 11 March 2018 Sept 2018

    March 2019 Sept 2019 March 2020 Sept 2020 March 2021 Sept 2021 Java 10 Java 12 Java 13 Java 14 Java 15 Java 16 Java 11 Java 17 6 months 18 months (3 years)
  9. @CGuntur @JeanneBoyarsky OpenJDK 11 Stewardship 12 Oracle Red Hat Sept

    2018 March 2019 Sept 2019 March 2020 Java 12 Java 13 Java 11 Java 11
  10. @CGuntur @JeanneBoyarsky Oracle Java Release Support 13 Sept 2018 March

    2019 Sept 2019 March 2020 Java 11 Open JDK (Reference Implementation) Oracle JDK (Standard Implementation) Java 11 Java 12 Java 13 Sept 2021 Java 12 Java 13
  11. @CGuntur @JeanneBoyarsky LTS JDK Releases 14 March 2018 Sept 2018

    March 2019 Sept 2019 March 2020 Sept 2020 March 2021 Sept 2021 Java 11 Java 17 6 months 18 months (3 years)
  12. @CGuntur @JeanneBoyarsky Quiz #1 Once Java 13 comes out, what

    does Oracle issue patches for? 16 Oracle JDK 11 OpenJDK 13 Oracle JDK 13
  13. @CGuntur @JeanneBoyarsky Quiz #4 How long can Java 8 be

    used in production for free? 19 Forever
  14. @CGuntur @JeanneBoyarsky Java is Still Free • Oracle JDK -

    Personal use under OTN • OpenJDK - Reference Implementation • Many vendors under GPL w/CPE When you have 20-30 minutes: 21 Free https://medium.com/@javachampions/java-is-still-free-2-0-0-6b9aa8d6d244
  15. @CGuntur @JeanneBoyarsky LTS vs MTS 23 LTS (Long Term Support)

    MTS (Medium Term Support) Java Versions Java 8, 11, 17 … Java 13, 15 
 between Java 11 & 17 Vendors Many (including Azul) Azul (Enterprise) Support length 8+ years Supported for 18 months after latest LTS.
  16. @CGuntur @JeanneBoyarsky Oracle Support 25 Support Updates/Patches OTN Support No

    at-will Premier Support Yes 5 years Extended Support Yes 8+ years Sustaining Support Yes Indefinitely
  17. @CGuntur @JeanneBoyarsky 30 AdoptOpenJDK Versions Supported By IBM, jClarity (Microsoft?)

    & several others Support Model LTS Support for 8 until Sep. 2023 LTS Support for 11 until Sep. 2022 Compatibility Test Update Policy Quarterly AdoptOpenJDK 12 + every 6 months 8 11 AQA Compliant https://adoptopenjdk.net/
  18. @CGuntur @JeanneBoyarsky 31 Amazon Corretto Versions Supported By Amazon Support

    Model LTS Support for 8 until Jun. 2023 LTS Support for 11 until Aug. 2024 Compatibility Test Update Policy Quarterly Amazon Corretto https://aws.amazon.com/corretto/ + future LTS 8 11 TCK/JCK Compliant
  19. @CGuntur @JeanneBoyarsky 32 Azul Zulu/Zing Versions Supported By Azul Support

    Model LTS Support for 8 until Mar. 2025 LTS Support for 11 until Sep. 2026 MTS Support ($$$) 1.5 years for 2 versions after latest LTS Compatibility Test Update Policy Quarterly Azul Zulu & Zing https://www.azul.com/products/zulu-enterprise/ TCK/JCK Compliant 12 + every 6 months 8 11
  20. @CGuntur @JeanneBoyarsky 33 BellSoft Liberica Versions Supported By BellSoft Support

    Model LTS Support for 8 until Jan. 2026 LTS Support for 11 until Mar. 2027 Compatibility Test Update Policy Quarterly BellSoft Liberica https://bell-sw.com/ TCK/JCK Compliant 12 + every 6 months 8 11
  21. @CGuntur @JeanneBoyarsky 34 IBM JDK Versions Supported By IBM Support

    Model LTS Support for 8 until Apr. 2022 LTS Support for 11 - Not Published Compatibility Test Update Policy Quarterly IBM JDK https://developer.ibm.com/javasdk/ TCK/JCK Compliant 12 + every 6 months 8 11
  22. @CGuntur @JeanneBoyarsky 35 OpenJDK Versions Supported By Oracle (for 6

    months) » RedHat (for 8,11) Support Model - per distro provider/vendor - Compatibility Test Update Policy Quarterly OpenJDK https://openjdk.java.net/ TCK/JCK Compliant 12 + every 6 months 8 11
  23. @CGuntur @JeanneBoyarsky 36 SAPMachine Versions Supported By SAP Support Model

    LTS Support for 8 - No distro (started with Java 10) LTS Support for 11 until Sep. 2022 LTS Support for 4 years Compatibility Test Update Policy Quarterly SapMachine https://sap.github.io/SapMachine/ TCK/JCK Compliant 12 + every 6 months 8 11
  24. @CGuntur @JeanneBoyarsky 37 Oracle JDK Versions Supported By Oracle Support

    Model Patches for each major version for 6 months Commercial support levels (Slide 25) Compatibility Test Update Policy Quarterly Oracle JDK https://www.java.com/ TCK/JCK Compliant 12 + every 6 months 8 11
  25. @CGuntur @JeanneBoyarsky Choosing a Strategy 38 Pros Cons Stay on

    Java 8 Existing skills Reflection easier Nearing end of support life (EOSL) Current release Latest features Upgrade every 6 months Use latest LTS (Java 11) Many of the new features Migration cost
  26. @CGuntur @JeanneBoyarsky Garbage Collection • Experimental ZGC (JEP 333) 


    http://openjdk.java.net/jeps/333
 • No-Op Epsilon GC (JEP 318)
 http://openjdk.java.net/jeps/318
 41 Java 11
  27. @CGuntur @JeanneBoyarsky Compact Number Formatting 42 Java 12 $> java

    --source 12 TwitterStats.java ~ 76.1K impressions & 2.01 thousand followers JDK-8188147
  28. @CGuntur @JeanneBoyarsky Switch Expressions 43 Java 12 (preview) $> java

    --source 12 --enable-preview Quarter.java --> Q3 JEP-325
  29. @CGuntur @JeanneBoyarsky Switch Expressions 44 Java 13 (preview) $> java

    --source 13 --enable-preview Quarter.java --> Q3 JEP-354
  30. @CGuntur @JeanneBoyarsky Raw String Literals 45 Java 13 (preview) $>

    java --source 13 --enable-preview XmlTest.java JEP-326
  31. @CGuntur @JeanneBoyarsky Notable JVMs 46 Name Vendor/ Maintainer Zulu Azul

    Systems OpenJ9 IBM Hotspot Oracle Free/Open Source Name Vendor/ Maintainer Zing Azul Systems GraalVM Oracle JamaicaVM aicas Commercial/Proprietary