Slide 1

Slide 1 text

@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

Slide 2

Slide 2 text

@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

Slide 3

Slide 3 text

@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

Slide 4

Slide 4 text

@CGuntur @JeanneBoyarsky 4 JAVA 8 JAVA 11 . . .

Slide 5

Slide 5 text

@CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support • Java Distros • Our favorite new features 5

Slide 6

Slide 6 text

@CGuntur @JeanneBoyarsky History 6 Java 8 2014 Hi Oracle 2010 Java 7 2011 Til Java 6 1996-2006 Java 9 2017

Slide 7

Slide 7 text

@CGuntur @JeanneBoyarsky Java School Report Card Features Developer Community A+ B Predictability of Release Frequency of Release F D < 2014

Slide 8

Slide 8 text

@CGuntur @JeanneBoyarsky JDK School Report Card Polyglot Programming Scalability & Performance B A Predictability of Release Frequency of Release F D 2014-2018

Slide 9

Slide 9 text

@CGuntur @JeanneBoyarsky With New Release Model Agile Developer Community A+ A Predictability of Release Frequency of Release A A 2019+

Slide 10

Slide 10 text

@CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support • Java Distros • Our favorite new features 10

Slide 11

Slide 11 text

@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)

Slide 12

Slide 12 text

@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

Slide 13

Slide 13 text

@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

Slide 14

Slide 14 text

@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)

Slide 15

Slide 15 text

@CGuntur @JeanneBoyarsky Quiz Time 15

Slide 16

Slide 16 text

@CGuntur @JeanneBoyarsky Quiz #1 Once Java 13 comes out, what does Oracle issue patches for? 16 Oracle JDK 11 OpenJDK 13 Oracle JDK 13

Slide 17

Slide 17 text

@CGuntur @JeanneBoyarsky Quiz #2 How long will Oracle issue Java 13 patches? 17 6 months

Slide 18

Slide 18 text

@CGuntur @JeanneBoyarsky Quiz #3 What is the next LTS version after Java 11? 18 Java 17

Slide 19

Slide 19 text

@CGuntur @JeanneBoyarsky Quiz #4 How long can Java 8 be used in production for free? 19 Forever

Slide 20

Slide 20 text

@CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support • Java Distros • Our favorite new features 20

Slide 21

Slide 21 text

@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

Slide 22

Slide 22 text

@CGuntur @JeanneBoyarsky What is Support? 22 Patches/Updates Ask a Question

Slide 23

Slide 23 text

@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.

Slide 24

Slide 24 text

@CGuntur @JeanneBoyarsky Oracle Support 24 Non-commercial Enterprise OTN Support Premier Support Extended Support Sustaining Support

Slide 25

Slide 25 text

@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

Slide 26

Slide 26 text

@CGuntur @JeanneBoyarsky Notable 3 Cloud Vendors 26 AdoptOpenJDK ?

Slide 27

Slide 27 text

@CGuntur @JeanneBoyarsky Quiz Time 27

Slide 28

Slide 28 text

@CGuntur @JeanneBoyarsky Quiz Can a developer expect support for a OTN download? 28 No

Slide 29

Slide 29 text

@CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support • Java Distros • Our favorite new features 29

Slide 30

Slide 30 text

@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/

Slide 31

Slide 31 text

@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

Slide 32

Slide 32 text

@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

Slide 33

Slide 33 text

@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

Slide 34

Slide 34 text

@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

Slide 35

Slide 35 text

@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

Slide 36

Slide 36 text

@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

Slide 37

Slide 37 text

@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

Slide 38

Slide 38 text

@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

Slide 39

Slide 39 text

@CGuntur @JeanneBoyarsky Agenda • History/Evolution • Release cycles • Support • Java Distros • Our favorite new features 39

Slide 40

Slide 40 text

@CGuntur @JeanneBoyarsky Single-File Source-Code 40 $> java Unicode.java Compiles in memory Java 11 JEP-330

Slide 41

Slide 41 text

@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

Slide 42

Slide 42 text

@CGuntur @JeanneBoyarsky Compact Number Formatting 42 Java 12 $> java --source 12 TwitterStats.java ~ 76.1K impressions & 2.01 thousand followers JDK-8188147

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

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

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

@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

Slide 47

Slide 47 text

@CGuntur @JeanneBoyarsky 47 Questions?