Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Java 11 OMG

62 views

Published on

Java 11 keynote at JVM-Con

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Java 11 OMG

  1. 1. @HendrikEbbers Karakun DevHub_ dev.karakun.com
  2. 2. @HendrikEbbers OMG!!!!!! Java 11
  3. 3. Karakun DevHub_ @HendrikEbbersdev.karakun.com About me • Karakun Co-Founder • Lead of JUG Dortmund • JSR EG member • JavaOne Rockstar, Java Champion • JavaLand Programm Chair
  4. 4. Karakun DevHub_ @HendrikEbbersdev.karakun.com About me
  5. 5. @HendrikEbbers OMG!!!!!! Java 11
  6. 6. @HendrikEbbers OMG!!!!!! Java 11
  7. 7. Karakun DevHub_ @HendrikEbbersdev.karakun.com The current state • Starting with Java 11 all the new changes in the Java ecosystem will affect developers • Mostly no-one cared about Java 9 or 10 • With 11 mostly all developers need to take action
  8. 8. Karakun DevHub_ @HendrikEbbersdev.karakun.com The current state • Before we have a deeper look at the new changes we should have a look at the history of Java • Some of the "new" stuff is already part of Java since years • Some decisions done for a decade affect us now
  9. 9. @HendrikEbbers
  10. 10. Karakun DevHub_ @HendrikEbbersdev.karakun.com Let's go back to the 90th • "Oak" (Object Application Kernel) / "The Green Project" was developed in 1992 • This project evolved to Java in 1995 • The Duke was already the
 mascot for the
 Green Project
  11. 11. Karakun DevHub_ @HendrikEbbersdev.karakun.com The first years • Java 1 - Java 6 were released at SUN • Java 1 was released 1996 • Java 6 was released 2006 • In 1998 the JCP (Java Community 
 Project) was formed
  12. 12. Karakun DevHub_ @HendrikEbbersdev.karakun.com The takeover • In 2009 SUN was bought by Oracle • The Java community was really 
 afraid about this move • Mostly no-one associated Oracle with 
 open source
  13. 13. Karakun DevHub_ @HendrikEbbersdev.karakun.com The last years • Oracle managed to provide
 major updates of Java • Continued to evolve Java by the JCP • Not everything is perfect but much
 better than it was expected
  14. 14. Karakun DevHub_ @HendrikEbbersdev.karakun.com Java in a nutshell Standard APIs Tools JVM
  15. 15. Karakun DevHub_ @HendrikEbbersdev.karakun.com The JVM • The "heart" of the Java platform • Definition of Java language features • Definition of Java runtime • Since 2000 just-in-time-compilation (HotSpot)
  16. 16. Karakun DevHub_ @HendrikEbbersdev.karakun.com The standard APIs • Java Class Library (JCL) is a set of dynamically loadable libraries • Will be called at runtime • Almost entirely written in Java (some JNI calls to hardware & OS)
  17. 17. Karakun DevHub_ @HendrikEbbersdev.karakun.com The standard APIs • Since Java 9 the standard APIs are separated in several modules java.se java.sql.rowset java.sql java.xml java.base java.loggingjava.instrument java.datatransfer java.scripting java.prefs java.desktop java.xml.crypto java.compiler java.rmi java.naming java.security.sasl java.management java.security.jgss
  18. 18. Karakun DevHub_ @HendrikEbbersdev.karakun.com The (evil) private APIs • Java contains some private Java APIs • This APIs should not be used in framework / application code • Private APIs can be changed at anytime
  19. 19. Karakun DevHub_ @HendrikEbbersdev.karakun.com The (evil) private APIs • Some rules about private APIs • Do not use anything besides the java.* package • Swing and Graphics2D is located in the javax.* package • JavaFX is located in the javafx.* package
  20. 20. Karakun DevHub_ @HendrikEbbersdev.karakun.com The tools • Each Java distribution contains a large set of tools • Some are part of OpenJDK • Some are vendor specifc
  21. 21. Karakun DevHub_ @HendrikEbbersdev.karakun.com The tools • Basic tools like the "java" or "javac" command are part of each JDK distribution • Oracle added several tools to its Java distribution that are not part of OpenJDK • All this tools were developed closed source at Oracle
  22. 22. Karakun DevHub_ @HendrikEbbersdev.karakun.com The tools • A good example is "Java WebStart" • WebStart was never part of OpenJDK and therefore was never part of OpenJDK builds • WebStart was only delivered with Oracle JDK builds
  23. 23. @HendrikEbbers A commercial break -
  24. 24. @HendrikEbbers
  25. 25. Karakun DevHub_ @HendrikEbbersdev.karakun.com The OpenJDK • Most of you will already heard that Java is open source • The open source code of Java can be found in the OpenJDK • Currently quite old infrastructure
  26. 26. @HendrikEbbers The new release train
  27. 27. Karakun DevHub_ @HendrikEbbersdev.karakun.com The classical Java releases • Up until Java 8 we had a flexible release train for Java • A new major version was released "when it's done" • This ended in delays and a a big bundle of new features per release
  28. 28. Karakun DevHub_ @HendrikEbbersdev.karakun.com The classical Java releases • A version was available for several years • Normally a version received updates even after the next version was released • Commercial LTS support was provided by Oracle for legacy projects
  29. 29. Karakun DevHub_ @HendrikEbbersdev.karakun.com Oracle Java roadmap 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 Java 6 Java 7 Java 8 Free
  30. 30. Karakun DevHub_ @HendrikEbbersdev.karakun.com Oracle Java roadmap 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 Java 6 Java 7 Java 8 Free Commercial
  31. 31. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train • Last year Oracle announced new release train • More flexible with fixed release dates • A feature will be released "when it's done" • Shorter lifetime of Java versions
  32. 32. Karakun DevHub_ @HendrikEbbersdev.karakun.com Java 9 Java 10 Java 11 Java 12 Java 13 Java 14 Java 15 2018 2019 2020 Java 8 The new release train Basic version LTS version
  33. 33. Karakun DevHub_ @HendrikEbbersdev.karakun.com Java 9 Java 10 Java 11 Java 12 Java 13 Java 14 Java 15 2018 2019 2020 Java 8 The new release train Free Commercial
  34. 34. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train @ Oracle • Starting with Java 11 Oracle provides 2 Java builds • Oracle JDK is the commercial distribution • Oracle OpenJDK builds still provided under GPL with classpath exception
  35. 35. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train @ Oracle Java 9 Java 10 Java 11 Java 12 Java 13 Java 14 Java 15 2018 2019 2020 Java 8 Free Commercial Not Free in Prod
  36. 36. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train • Next to the new timeline the new release model added some additional points • Deprecated code was removed from Java • @Deprecated has additional information
  37. 37. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train A value of true indicates intent to remove the annotated program element in a future version. @Deprecated(forRemoval = true)
  38. 38. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train • Several APIs were already removed between Java 8 and Java 11 • CORBA • JAXB • Java Enterprise Annotations
  39. 39. Karakun DevHub_ @HendrikEbbersdev.karakun.com The new release train • Since Java will become more flexibel the users of Java need to become more flexible, too • Based on the changes dependencies and application code need to be checked for a new version • Updates should be done more often
  40. 40. @HendrikEbbers Commercial support
  41. 41. Karakun DevHub_ @HendrikEbbersdev.karakun.com Commercial support • Several companies offer commercial support for Java • Normally this contains LTS versions of specific Java versions • All companies share the same workflow
  42. 42. Karakun DevHub_ @HendrikEbbersdev.karakun.com OpenJDK workflow OpenJDK New feature Security fix
  43. 43. Karakun DevHub_ @HendrikEbbersdev.karakun.com 8 9 OpenJDK New feature Security fix OpenJDK workflow
  44. 44. Karakun DevHub_ @HendrikEbbersdev.karakun.com 8 9 OpenJDK New feature Security fix Public (free) lifetime of Java 8 OpenJDK workflow
  45. 45. Karakun DevHub_ @HendrikEbbersdev.karakun.com 8 9 Oracle Vendor B Vendor A OpenJDK New feature Security fix OpenJDK workflow
  46. 46. Karakun DevHub_ @HendrikEbbersdev.karakun.com 8 9 Oracle Vendor B Vendor A OpenJDK Commercial LTS support for Java 8 New feature Security fix OpenJDK workflow
  47. 47. Karakun DevHub_ @HendrikEbbersdev.karakun.com 8 9 Oracle Vendor B Vendor A OpenJDK New feature Security fix OpenJDK workflow
  48. 48. Karakun DevHub_ @HendrikEbbersdev.karakun.com • Vendors work in private forks for versions with commercial support • Security fixes will be merged in the fork OpenJDK workflow
  49. 49. Karakun DevHub_ @HendrikEbbersdev.karakun.com • Vendors work in private forks for versions with commercial support • Security fixes will be merged in the fork migrated OpenJDK workflow
  50. 50. Karakun DevHub_ @HendrikEbbersdev.karakun.com • Vendors work in private forks for versions with commercial support • Security fixes will be merged in the fork • Customer specific changes will be added to the fork migrated OpenJDK workflow
  51. 51. Karakun DevHub_ @HendrikEbbersdev.karakun.com Vendor C Vendor B Vendor A Specific customer fixes Migrated security fix OpenJDK End of life End of life OpenJDK workflow
  52. 52. Karakun DevHub_ @HendrikEbbersdev.karakun.com • All companies have the same workflow but the concrete versions will differ more an more • Maybe security
 fixes can be 
 handled in an open
 branch in future OpenJDK workflow
  53. 53. Karakun DevHub_ @HendrikEbbersdev.karakun.com • Next to this the models for commercial support are different • It really makes 
 sense to have a 
 deeper look at the
 price models
 OpenJDK workflow
  54. 54. Karakun DevHub_ @HendrikEbbersdev.karakun.com Oracle commercial support Processor count Monthly price per processor 1-99 $25.00 100-249 $23.75 250-499 $22.50 500-999 $20.00 1.000-2.999 $17.50 3.000-9.999 $15.00 10.000-19.999 $12.50 20.000+ Oracle must be contacted
  55. 55. Karakun DevHub_ @HendrikEbbersdev.karakun.com Azul commercial support Systems Price / year (Standard) Price / year (Premium) 1-25 $12.000 Not available 16-100 $28.750 $34.500 101-1000 $86.250 $103.500 unlimited $258.750 $310.500
  56. 56. Karakun DevHub_ @HendrikEbbersdev.karakun.com Bellsoft commercial support Systems Price / year 1-50 $20.000 51-500 $70.000 500+ Bellsoft must be contacted
  57. 57. Karakun DevHub_ @HendrikEbbersdev.karakun.com Some calculations • Let's assume we have 10 servers • Each server has 4 CPUs Oracle Azul Bellsoft $10.000 $20.000
  58. 58. Karakun DevHub_ @HendrikEbbersdev.karakun.com Some calculations • Let's assume we have 100 servers • Each server has 4 CPUs Oracle Azul Bellsoft $50.000 $100.000
  59. 59. Karakun DevHub_ @HendrikEbbersdev.karakun.com Some calculations • Let's assume we have 1.000 servers • Each server has 4 CPUs Oracle Azul Bellsoft $500.000 $1.000.000 ?
  60. 60. Karakun DevHub_ @HendrikEbbersdev.karakun.com Some calculations • Let's assume we have 5.000 servers • Each server has 4 CPUs Oracle Azul Bellsoft $2.000.000 $4.000.000 ?
  61. 61. Karakun DevHub_ @HendrikEbbersdev.karakun.com Commercial support • All this support models are made for Java on the server • This works fine for classic mainframe applications • Several models work fine for cloud computing • No price model is made for Java on the client
  62. 62. Karakun DevHub_ @HendrikEbbersdev.karakun.com Oracle commercial support User client machines Monthly price per user / client machine 1-999 $2.50 1,000-2,999 $2.00 3.000-9.999 $1.75 10.000-19.999 $1.50 20.000-49.999 $1.25 50.000+ Oracle must be contacted
  63. 63. Karakun DevHub_ @HendrikEbbersdev.karakun.com Commercial support • Next to Oracle we currently try to create a price model for commercial support together with Bellsoft • Good alternative against the price model of Oracle
  64. 64. @HendrikEbbers Amazon Corretto
  65. 65. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto • Amazon announced its own JDK distribution some weeks ago at Devoxx • Really high visibility
 since James Gosling
 did the announcement
  66. 66. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto • On the official page Amazon describes Corretto as No-cost, multiplatform, production-ready distribution of OpenJDK
  67. 67. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto
  68. 68. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto "Caffè corretto, an Italian beverage, consists of a shot of espresso with a small amount of liquor, usually grappa, and sometimes sambuca or brandy." Wikipedia
  69. 69. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto "Caffè corretto, an Italian beverage, consists of a shot of espresso with a small amount of liquor, usually grappa, and sometimes sambuca or brandy." Wikipedia
  70. 70. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto • Java 8 builds will be supported till 2023 (LTS) • Java 11 builds will be supported till 2024 (LTS) • LTS build will contain security fixes • A new version will be released each quarter • No commercial support options
  71. 71. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto • Currently a Java 8 based preview build can be downloaded • Downloads for Mac, Linux & Windows (all 64bit) • Downloads contain installer instead of basic TAR/ ZIP file
  72. 72. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto • Java 8 build contains JavaFX • Java 8 build contains no WebStart
  73. 73. Karakun DevHub_ @HendrikEbbersdev.karakun.com Amazon Corretto Red Hat SAP Bellsoft IBM Amazon Azul
  74. 74. @HendrikEbbers AdoptOpenJDK
  75. 75. Karakun DevHub_ @HendrikEbbersdev.karakun.com AdoptOpenJDK • Community based project • Provides OpenJDK based builds • 100% open source (even the builds) • Sponsored by several companies
  76. 76. Karakun DevHub_ @HendrikEbbersdev.karakun.com AdoptOpenJDK • Currently support for open source Java versions • Security fix migration is not open source until now • Goal is to provide free LTS versions for Java 11 • In contact with several companies
  77. 77. @HendrikEbbers
  78. 78. @HendrikEbbers
  79. 79. @HendrikEbbers Update your app from 8 to 11
  80. 80. Karakun DevHub_ @HendrikEbbersdev.karakun.com A lot of changes • Public API was removed (CORBA, JAXB) • Java modules • Some nice new API
  81. 81. Karakun DevHub_ @HendrikEbbersdev.karakun.com Dperecated / private APIs • Does your code compile? • Check your code for usage of private APIs • Check all dependencies (Issue-Tracker?)
  82. 82. Karakun DevHub_ @HendrikEbbersdev.karakun.com Moduls • Convert your project to modules • Does your dependencies defined as modules? • Is it planed / can you help • Unnamed model • automatic model
  83. 83. @HendrikEbbers Karakun supports you
  84. 84. Karakun DevHub_ @HendrikEbbersdev.karakun.com Karakun supports you • Karakun does not offer JDK support • Currently plan to provide a Java on Desktop support pack together with Bellsoft
  85. 85. Karakun DevHub_ @HendrikEbbersdev.karakun.com Karakun supports you • Karakun tries to recreate WebStart as an open source product • We offer trainings and workshops for Java migration (8-11), the new release train • We will inform you about all aspects of this topic at https://dev.karakun.com
  86. 86. @HendrikEbbers Karakun DevHub_ dev.karakun.com

×