Progress and information

Martijn Verburg martijnverburg at gmail.com
Sun May 18 09:50:12 UTC 2014


Hi Frank,

Firstly, please note I'm not employed by Oracle or the other major OpenJDK
contributing organisations and don't have any special insights into their
internal proposed project planning for Java 9. That said, Oracle et al have
been working towards making a clearer, more transparent roadmap for OpenJDK
(9) which is great! So expect to see a clearer picture/roadmap emerge over
the coming year.

As with any large software project, estimates, features, bug fixes etc are
all subject to change. More specific comments inline (someone from Oracle
can jump in and thwack me if I get any of this horribly wrong).

On 17 May 2014 11:32, Frank van Heeswijk <fvheeswijk at outlook.com> wrote:

> Dear all,
>
> I am just a regular Java programmer here, that happened to have adopted
> Java 8 quite fast and thus got me interested in the core of a programming
> language.
> I understand that Java 9 is just being started on and nowhere even near
> somewhere near a public alpha release.
>

Correct, there's already a lot of great fixes going into Java 9, but no
major features merged in as of yet (hopefully that's not a disservice to
the good work gone in so far).  Well there is the matter of the ARM 64 port
from Red Hat, that was some pretty awesome early news :-).


> What I hence was wondering, after seeing some public talks about what the
> direction of Java 9 are the following things:
> 1. Firstly; Is this the correct mailing list to ask such questions?
>

It's one of them yes, you can find the other pertinant mailing lists here:
http://mail.openjdk.java.net/mailman/listinfo - it's probably worth looking
at discuss in particular for this sort of thing.


> 2. Can I find more about the general direction Java 9 is taking somewhere?
> (At least what is planned, it doesn't mean that it will make it in time)
>

The best 2 places to correlate at the moment are the bug database:
https://bugs.openjdk.java.net/browse/JDK and the JDK Enhancement Proposals
list: http://openjdk.java.net/jeps/0 - you'll notice that none of them are
set for Java 9 yet.  There is also a list of JSRs (https://jcp.org/) - but
it's probably fair to say that only one of them (Money & Currency) is a
candidate for Java 9 (and that's still a *big* maybe).


> 3. What specific big topics (A few examples from Java 8 would be lambdas,
> streams and new date API) are up for Java 9?
>

I'd argue that aside from some increased lambification of OpenJDK, and
possible the Currency JSR that developers aren't going to see large library
changes in Java 9. There's probably going to be a lot of JVM work in
preparation for really big changes in Java 10 such as the proposed Value
Types. We might see modularisation go in (project Jigsaw) and a host of
other JVM & Mechanical Sympathy changes happening (e.g. The JVM dealing
with native stacks more cleanly, better serviceability APIs etc).

Furthermore I have some more general questions which deserve their own
> context.
>
> The first question is that I would like to contribute to JDK 9 if possible
> in some way, but I am nowhere near a maintainer of a popular project and
> neither close to being experienced enough to implement something in a
> language. What points would be doable though?
>

A good mailing list to join is adoption-discuss at openjdk.java.net - it's a
group where we help out folks new to OpenJDK. The adoption group is working
with other groups to identify suitable areas, please ask there!

Secondly, correct me if I am wrong, there has been some talk about value
> objects, as opposed to reference objects, in possibly Java 9. Is this
> something on which more details can be given? I might be way ahead of time,
> but can be expect something like List<int> and is the planning to make int
> extends Object, or would it be more a low-level JVM optimization in which
> Integer (objects) would be treated just as regular int?
>

One of the main proposals is here:
http://cr.openjdk.java.net/~jrose/values/values-0.html - please note this
is a document that is designed to encourage further research and discussion
around the semantics of such a change (no syntax arguments please!) and is
by no means a final blueprint.  IBM also has a proposed Packed Objects
idea, I don't have the link handy but I think if you Google for it you'll
find a few presentations. My guess is we'll see something that merges in
the best of both worlds.

I'm going to be brutal here and say that unless you have a deep background
in the JVM or language/VM design, you're probably best off waiting to help
in this area until some early prototypes come out that you can code against
and give feedback on.

I'll note here that even from my layman's "I'm not a VM expert or language
designer" that there is *no way* we're going to see a fully realised Value
Types implementation in Java 9.  You only have to read John Rose et al's
research document to understand the vastness of this change and the complex
interactions with things like Generics.  I'd personally be concerned if
they tried to rush it in.


> Maybe I shouldn't be asking the third point, but are their plans to break
> up with older Java code at some point in time? I honestly believe things
> like type reification would be very useful and it would be a great
> opportunity to fix some broken concepts (Cloneable, Serializable) on a
> language level. Is there anything to be said about this? I do understand
> though that it is well possibly that this may never happen for Java.
>

Breaking backwards compatibility is generally seen as a major no-no in
Java.  Are there areas like Finalizers and Serializable that everyone would
like to see changed?  Yes :-).  When these ideas get explored, they tend to
get discussed in the mlvm mailing list.  Will we see any of what you
mentioned above occur in Java 9? No.  In 10+? Who knows, it's simply too
far out to judge.

Hope that helps!
Martijn (For reference, a member of the OpenJDK Adoption Group)


>
> Regards,
>
> Frank
>


More information about the jdk9-dev mailing list