21 March 2018

Java 10 released, codename "boring"

With a release 10, you'd expect some jubilee fanfare and marketing blitz. At least they could have waited one day to launch at march 21 for spring (maybe that term is too much associated with another java ecosystem).
But it's axe time for Java at Oracle, so this is the most under cover release ever. At the java SE download page you have to dig deep for anything coming near to a decent what's new presentation.
To be fair, this is also related to increased release frequency that was introduced for Java. Like many platforms these days, java will be released on fixed time points with whatever is ready at that moment. The first release in such a system is always a bit underwhelming, think of EcmaScript 2016, for example.

The one big addition in Java 10 is the introduction of var declarations for local variables. If the compiler can infer the type of a local variable from the initialisatioin, you don't have to type it anymore. So Java 9 code

  ArrayList<String>list = new ArrayList<>();   
  Stream<String> stream = list.stream(); 
can in Java 10 be written as 
  var list = new ArrayList<String>();
  var stream = list.stream();
Always takes a bit of getting used to, but I think the older syntax is clearer. You'll start seeing plenty of code, where the classes being used are not clear for somebody that is less familiar with the API being used. They will not even be present in the import statements.

Some other enhancements:
  • inclusion of root CA certificate
  • Graal compiler as an experimental option

We mentioned axe time: so with this release stuff is effectively getting removed and being marked for removal. One remarkable removal is the desktop policytool. It is replaced by your favourite file editor.