
JDK 9 General-Availability Release - batbomb
http://jdk.java.net/9/
======
sandGorgon
I'm really excited for Graal which will make high performance Ruby, Python and
JS possible. [https://youtu.be/5BMHIeMXTqA](https://youtu.be/5BMHIeMXTqA)

Imagine being able to run Pandas and Reactjs and Spring using the same
runtime.

[https://github.com/graalvm/truffleruby](https://github.com/graalvm/truffleruby)

Java is now officially signalling that it wants to make building new languages
as the future of Java.

Graal is also probably going to define the future of the JDK internals as
well.
[http://mail.openjdk.java.net/pipermail/discuss/2017-Septembe...](http://mail.openjdk.java.net/pipermail/discuss/2017-September/004336.html)

~~~
Yuioup
Is Graal derived from Grails?

~~~
stewbrew
"Grails" was derived from "Rails", just with a g prepended. Are you actually
asking whether the "Holy Graal" refers to a railway station in heaven?

~~~
vorg
More likely "Graal" was derived from "Grails", since the English word _grail_
came from the Old French _graal_. And from
[http://openjdk.java.net/projects/graal/](http://openjdk.java.net/projects/graal/)
:

"The aim of this project is to expose VM functionality via Java APIs. Namely,
we want to make it feasible to write in Java a dynamic compiler and
interpreter for a language runtime. [...] Building on the compiler, we aim to
develop a multi-language interpreter framework. Java will be just one member
in the family of supported languages. The use of partial evaluation will allow
the framework to deliver competitive performance."

This compiler and framework sounds like an attempt to provide a foundation for
more Groovy/Grails-style ecosystems to be built on the JVM.

------
zserge
To me JDK9 and Jigsaw sounds like a viable alternative to Electron. Cross-
platform, well-known mature language, distributable standalone app bundle
includes the runtime and takes ~15-30 MB zipped or ~80MB unpacked on disk (I
tried swing UI, but I would expect JavaFX to have similar results). I don't
remember RAM usage details (I tried it a few weeks ago), but I wouldn't expect
it to be higher than Electron's.

------
karussell
See also the mail from Mark Reinhold
[http://mail.openjdk.java.net/pipermail/announce/2017-Septemb...](http://mail.openjdk.java.net/pipermail/announce/2017-September/000230.html)

This AOT compilation feature is interesting, didn't know that it is in JDK9
... will it allow JDK9 libraries run on iOS?
[http://openjdk.java.net/jeps/295](http://openjdk.java.net/jeps/295)

~~~
bpicolo
Seems limited?

"AOT compilation of any JDK modules, classes, or of user code, is experimental
and not supported in JDK 9."

...Unclear (to me) what that means

~~~
zeckalpha
Seems clear, it _can_ compile but if you have problems, they're not likely to
fix it.

------
meta_AU
JDK9 brings a C1 and C2 JIT compiler for ARM targets without needing an Oracle
licence (IANAL). Should be able to get much better performance on ARM now -
previously it was interpreted unless you used a custom build with the AArch32
project's C1 JIT.

------
0x0
Also discussed here, which links to the full Oracle JDK distribution for
windows, macOS, linux and solaris:
[https://news.ycombinator.com/item?id=15306295](https://news.ycombinator.com/item?id=15306295)

------
vbezhenar
Can it be used as a drop-in replacement for JDK 8 or there could be
compatibility problems with popular libraries? As I understood, modules are
optional and won't affect code which isn't modules-ready yet?

~~~
dionian
generally with every major release you can compile and target code to earlier
JVMs with minimal, if any changes. I've heard that the module system is not
backwards incompatible, and I would be shocked if it was incompatible with
java 8 code out of the box

~~~
kuschku
The problem is that some Java 8 code relies on implementation-specific code in
the JVM – for example, JetBrains’ IDEs do.

As a result, this doesn’t work with Java 9 the same anymore, as basically all
that stuff has been moved around.

~~~
dionian
as usual they have been working on support in the EAPs, I'm guessing 2017.3
works relatively well with jdk9 by now, but i havent tried yet!

------
luizb
NO language enhancements .... I guess they leave that for the Kotlin guys ...

~~~
virtualwhys
Don't worry, pattern matching and data classes should be coming in one of the
Java 9 feature releases (6 month cycle).

They'll probaby cherry pick some other language features along the way to Java
10.

~~~
pron
There is not going to be a Java 10. The next version of Java will be 18.3, to
be released in March '18, followed by a release every 6 months. Those will not
be "Java 9 feature releases" but "major" Java releases.

------
cromwellian
So Jigsaw modules are shipped as part of JDK9 even those the JSR was rejected
by the community (well, IBM, Redhat, and Maven/et al)?

I wonder how this is going to play out if it starts getting use. I'm guessing
we'll see two types of jars published on Maven, maybe Jigsaw enabled and
regular? (e.g. <classifier>jigsaw</classifier>?)

~~~
ad133
Is that why JDK9 is 350MB (Windows x64) vs 190MB for JDK8u144? I'm off to go
explore more, but for something that's meant to be smaller and more modular,
this was a bit of a surprise!

Edit: Also, I was sure Jigsaw was approved in the end; that's why we've had to
wait until September.

~~~
kuschku
From the article:

> JDK 9 downloads are larger than JDK 8 downloads because they include JMOD
> files so that you can create custom run-time images. To learn about JMOD
> files see the Project Jigsaw Quick-Start Guide and JEP 282.

~~~
silb
The javac compiler has a new option "\--release" which can compile against
previous Java releases 6, 7 and 8. So the new JDK bundles parts of the
previous releases.

