Qcon New York – 2018 Table of Contents

This year, I’m speaking and live blogging from QCon. New York.

140 speakers and 900 attendees. From 38 states plus international. Should be good! As I always, I like the hallway track, emphasis on useful badges, etc. I don’t remember “My QCon Trail” from last year. Goo way to see what you went to, how you voted and how others voted.

Wednesday

Thursday

  • A brief, opinionated history of the API — Joshua Bloch
  • AMA Josh Bloch
  • Investing in your Java Katalog – Don Raab & Aditi Mantri
  • Effective Java – Josh Bloch (I did a QCon interview for the first half of this session. I used the rest to prepare for my own session. Since I had seen Josh give this presentation before, it was nice hearing it again as “background” as I got ready though. It’s the kind of talk you get a little more from each time you hear it)
  • Mob Programming Mini Workshop – Harold Shinsato
  • Java 11 keeping  the release train on the right track – my talk. I can’t blog about my own session so here is a link to the slides
  • Yo. Ask me Anything – I was on this panel so no blog here either.

Friday

I wasn’t able to get Friday off from work so didn’t attend the conference that day.

javaone vs oracle code one

Oracle announced that they are turning JavaOne into Oracle Code One.  There was a lot of Twitter chatter that week. I want to add my two cents.

Tracks

First off all, JavaOne had two non-Java tracks last year:

  • Emerging Languages
  • Oracle Code: Containers, Microservices, DevOps, Databases, APIs and MOre

That means that 2/7 or approximately a quarter of the conference was already not about Java. I realize that’s not exact. Some of the topics in that quarter were about JVM languages. But it does show that JavaOne reflected the reality of polyglot developers and didn’t focus on “just” Java. (I think I remember there being some JavaScript stuff too, but maybe I’m remembering wrong.)

Two conferences

It’ll be interesting to see what if anything moves Oracle OpenWorld to Oracle code. Some of the Oracle technology specific sessions are about coding so maybe it is time for them to move.

Piloted at city events

Oracle ran Oracle Code in different cities. I went to (and spoke) at the New York City one. There was a good amount of Java there. There were also a good number of talks Java developers would find relevant even if they weren’t specific to Java. If that ratio of talks at Oracle Code One matches Oracle Code, I’ll be one happy developer.

Naming

  • DevNexus is a “Java focused” conference; they call themselves the second biggest Java conference in the US (or world; I forget.) They have non Java sessions – DevOps, JavaScript, etc. But no .NET at this time so they do cover what a JVM stack developer wants to know. Note they don’t Java in the name either and nobody is crying.
  • CodeRanch is a forum that used to be named JavaRanch. It’s still mostly JVM language focused, but the name also reflects that it is more than “just Java.”

Advice for Oracle

Remember the community. Jakarta EE might not belong to you, but it is an important part of the community. Make sure there are still talks on it.

Sentimentality

Change is hard. Personally, I really wanted to speak at JavaOne. So glad I got to last year before the opportunity was gone. That said, Oracle Code NYC was a good event so I expect Oracle Code One to be as well. And I want to speak there too. So now I have a new goal :).

Conclusion

The world isn’t ending. This isn’t the death of Java or the conference.  What makes “JavaOne” the flagship conference isn’t the name. It’s the people/venue/event/scale. So if you are a Java community leader/speaker, go again. Don’t make “the death of JavaOne” a self fulling prophecy.

And now off to submit my application…

Moving Java Forward Faster – live blog at Oracle Code

Title: Moving Java Forward Faster
Speakers: Donald Smith

See my live blog table of contents from Oracle Cloud

New Java Release Model

  • “no more limos; think trains”
  • From Java 2 to Java 8, had target release of every two years. Slipped a bunch of times (once to 5 years)
  • From Java 2 to Java 8, did update releases roughly every 6 months. (not counting security releases). These update releases had new APIs or functionality. Ex: 8u20, 8u40, 8u60
  • Java 9 was released in September 2017 and is already at end of life
  • Tried to make case that Java 10 is really 9.1 and Java 12 is really 10.1 and Java 13 is really 10.2 and so forth. [I don’t think this analogy holds. Talking to Mark Reinhold suggests that they aren’t trying to make major changes specifically for 11).
  • Didn’t use 9.1, 10.1, etc because need major version number to make spec change.
  • Carve up changes across releases instead of a major release every few years.
  • Every six months is now a feature release and can potentially change the spec.
  • Enterprises do not like 6 month releases so every 3 years is LTS release.
  • Java 11 is 18.9 LTS. So the LTS still uses the yy.m naming convention. So Java 17 will be the 21.9 LTS. If so java –version get vendor string that will have both Java 11 and 18.9 in string for Oracle JDK
  • Java 11 (18.9 LTS) will be supported for about 5 years plus 3 years of extended support.
  • LTS releases will be more stable because people are using the interim releases who don’t care about LTS.
  • Java 6 support ends in late 2018. Java 7 support ends in 2022 and Java 8 ends in 2025. Java 8 might be supported longer. TBD.
  • Oracle will be producing Open JDK binaries vs it being a third party thing. Open JDK binaries are GPL licensed. They will only be available for 6 months for Java 11, 17, etc
  • Open sourcing the commercial features that are part of the JDK – mission control, flight recorder, app class data sharing, java usage tracker (see how many JREs used in system).
  • Separately packaged tools will stay commercial

What’s new in Java 9

  • Last “major” release. 100+ features
  • No longer using word “major” because releases are frequent and incremental.
  • Jigsaw gives smaller footprint to attack by having less modules.
  • java misc Unsafe – [the usual so not writing it up]
  • AOT compiler – for application as well. Not immediate, but coming.
  • jshell – live demo
  • G1 is now default garbage collector

Long term goal of jlink

  • Horror stories where people need a dozen versions of JREs because apps don’t work with various patches.
  • Long term goal – shift thinking of how package apps from standalone JRE to shipping a JRE with the app itself. (for client side apps for users)
  • Gut: This makes the problem worse
  • jlink lets you create custom runtime optimized for program. Doesn’t have all the modules.
  • Get smaller package with just what need.
  • [security implications are interesting; have to patch each app but apps far less likely to contain vulnerability]
  • jlink also requires packing for hardware
  • Goal shifting to jlink because browsers and OS are heading away from one common Java for Windows and Mac. Worried that one day there will be an OS update that will block separate JRE.
  • [I asked why it isn’t a problem for developers if OS blocks common java. He said maybe a configuration or a developer build. So power users vs end users problem]

What’s new in Java 10

  • First feature release (vs major release)
  • Type inference – var x – … (example of a feature that couldn’t be in an update release since changes Java spec)
  • G1 garbage collector uses multiple threads
  • 12 JEPs (Java Enhancement Proposals) targeted.
  • Open source root certificates. Can connect to many TLS servers out of the box. Vs OpenJDK for RHEL which assumes you have Firefox installed.

What’s new in Java 11

  • 4 JEPs already targeted. Waiting until ready to target
  • Removing some APIs

Future – version not yet known

  • Optimize for data; not just code. So big data libraries don’t need to call native code
  • Project Panama – interoperate with native libraries (better JNI)
  • Project Loom – lightweight threads
  • Project Valhalla – value types. Maybe Java 12?

My take

Excellent session. I thought I understood the release model and still learned some nuances! Glad he spent more than half the session on this topic. And I hadn’t realized the long term implications for Jigsaw/jlink.