Successfully reported this slideshow.
Your SlideShare is downloading. ×

Java 11 OMG

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 86 Ad

More Related Content

Slideshows for you (20)

Similar to Java 11 OMG (20)

Advertisement

More from Hendrik Ebbers (20)

Recently uploaded (20)

Advertisement

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

×