Choosing the Right Java Version & Strategy

Choosing the Right Java Version & Strategy

With Chandra Guntur

3906b007e5c4150115e319a01d2f4ab8?s=128

Jeanne Boyarsky

September 19, 2019
Tweet

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 4 JAVA 8 JAVA 11 . . .

  5. @CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support

    • Java Distros • Our favorite new features 5
  6. @CGuntur @JeanneBoyarsky History 6 Java 8 2014 Hi Oracle 2010

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

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

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

    A Predictability of Release Frequency of Release A A 2019+
  10. @CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support

    • Java Distros • Our favorite new features 10
  11. @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)
  12. @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
  13. @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
  14. @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)
  15. @CGuntur @JeanneBoyarsky Quiz Time 15

  16. @CGuntur @JeanneBoyarsky Quiz #1 Once Java 13 comes out, what

    does Oracle issue patches for? 16 Oracle JDK 11 OpenJDK 13 Oracle JDK 13
  17. @CGuntur @JeanneBoyarsky Quiz #2 How long will Oracle issue Java

    13 patches? 17 6 months
  18. @CGuntur @JeanneBoyarsky Quiz #3 What is the next LTS version

    after Java 11? 18 Java 17
  19. @CGuntur @JeanneBoyarsky Quiz #4 How long can Java 8 be

    used in production for free? 19 Forever
  20. @CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support

    • Java Distros • Our favorite new features 20
  21. @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
  22. @CGuntur @JeanneBoyarsky What is Support? 22 Patches/Updates Ask a Question

  23. @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.
  24. @CGuntur @JeanneBoyarsky Oracle Support 24 Non-commercial Enterprise OTN Support Premier

    Support Extended Support Sustaining Support
  25. @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
  26. @CGuntur @JeanneBoyarsky Notable 3 Cloud Vendors 26 AdoptOpenJDK ?

  27. @CGuntur @JeanneBoyarsky Quiz Time 27

  28. @CGuntur @JeanneBoyarsky Quiz Can a developer expect support for a

    OTN download? 28 No
  29. @CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support

    • Java Distros • Our favorite new features 29
  30. @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/
  31. @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
  32. @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
  33. @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
  34. @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
  35. @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
  36. @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
  37. @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
  38. @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
  39. @CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support

    • Java Distros • Our favorite new features 39
  40. @CGuntur @JeanneBoyarsky Single-File Source-Code 40 $> java Unicode.java Compiles in

    memory Java 11 JEP-330
  41. @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
  42. @CGuntur @JeanneBoyarsky Compact Number Formatting 42 Java 12 $> java

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

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

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

    java --source 13 --enable-preview XmlTest.java JEP-326
  46. @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
  47. @CGuntur @JeanneBoyarsky 47 Questions?