Java Offheap Podcast Future of Java Part I at Goto Chicago 2017
I had the honor to be a guest on Java OffHeap (@offheap) while attending Goto Chicago 2017. I am also happy to announce that I am in talks with the OffHeap guys to have an occasional guest segment on their program, tentatively called "Mark and Sweep" where we will feature audio content from the existing interviews from my book Secrets of the Rockstar Programmers as well as new interviews with additional thought leaders.
The link to the episode
is <http://www.javaoffheap.com/2017/05/episode-24-nothing-like-sweet-home.html>
,
but this post is my summary and notes.
Part II, with Jim Weaver and Dean Wampler, is here
Part I: Georges Saab and I
02:58 I talk about the java.net sunset. 03:54 I mention that the email lists were still not ready at the time of the recording (now now they are). I also mention the essential nature of the search archive for JCP mailing lists. This gives an insight into one of the challenges of evolving a multi-year project over many releases. 04:37 I explain why we couldn't use Google Groups. 05:25 I call for a moment of silence for the memory of java.net. 05:58 I mention you can submit pull requests, but the governance process is not yet in place for external commits. 06:19 Georges explains that openjdk was never running on java.net, and so is not impacted. 06:58 Georges explains why they are not moving to GitHub from Mercurial. They have everything working well enough with Mercurial, so there is no need to move it over to GitHub. 07:58 I mention that we gave up using JIRA when moving to GitHub, and I asked if anyone was using waffle.io as an agile overlay on top of GitHub. No one was.
08:58 Bob asked about the transition to the "train release". Georges
mentioned that we work on things in OpenJDK, and then take it to JCP for
standardization. We're not changing that way of doing things. 10:32
Georges tells the story of how there is a diversity of opinions
regarding release cadence. 11:42 Many of the things in 9 enable the
more rapid release model. 12:07 Freddy explains how this evolved across
the java releases. 12:48 Georges explains the "medicine to candy
ratio". 9 has more medicine and not as much candy. 14:00 Georges
explains how this benefits the community as a whole. It enables the
small things to get out more quickly without waiting for big blockbuster
releases. 15:00 He uses the 2016 delay of 9 as how it blocked things
like String compaction. 15:30 I mention the rapid sunset schedule for
Java 8 itself. 16:00 George observed September 2017 is end of public
updates for 8, but most of the criteria will not be met. 17:03 Bob
provides some insight on the corporate adoption angle. 18:27 Georges
pitches modularizaion's benefits. It mitigates the need to
call sun.misc.unsafe
. 21:11 Freddy mentioned why people
use it: it makes it even possible to consider Java. It makes the
performance acceptable compared to alternatives. 22:27 Freddy
mentioned that the current plan is to provide standard alternatives
before removing sun.misc.unsafe
. 22:38 Georges talks about
the support burden on unsafe and device driver control for
Minecraft.
26:24 Bob brings up the IBM and RedHat plan to vote no on Jigsaw, as it relates to language development. Georges provides some color. 27:55 Freddy asks what's the biggest complaint from IBM and RedHat. 28:59 Georges mentions the perils of scope creep. 29:46 Freddy asks what was the outcome? 30:42 Georges answers.
32:30 Freddy asks, if you want to have faster startups, do you have to use Jigsaw? 32:40 Georges answers use jlink and ahead of time compilation. By using jlink, you are telling the system what you are actually using. 33:29 Bob points that JCP and jigsaw can conflict because the releasing of Java subsets is prohibited according to legal rules. Georges answers: 8 introduced "compact profiles". Nobody has complained about that. Jlink is essentially a program doing that. Jlink is for you to use to package the application. 35:20 Bob asks how small can it get?
36:38 Ed tells the story of the acute need for a module system in EE.
The notion of having of modules would have influenced the design of EE.
37:35 Ed tells the story of the ALPN backport story. Every decision
that is made has ripple effects down the pipeline. 38:57 Georges
elaborates more on the train idea. "Marbles stuck in the tube behind
the basketball". The heart of the train release idea is that when
features are ready, they can be released. To see what's coming, look at
the JEPs. There is a minimum amount of time for JCP releases. They are
looking at possibly shortening that minimum. Ed personally notes:
YAGNI.
42:49 Project Valhalla: value types and data representation. 45:15 How this relates to the ends of the spectrum: micro services and really big data. 45:42 Freddy likes value types, in particular its cache friendliness.
46:00 Project Panama: JNI done right. Generate ability to call into java from header files. 47:35 this plus value types is pretty compelling.
48:12 Status of JShell: it's in 9. 49:17 JShell removes all the ceremony of getting started with Java. We'll use things we learn from that to understand where we actually need the ceremony and don't.