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.