What should be in Java10?

java10It might seem a bit early to start speculating about Java10 before Java9 has even launched. In fact, with Project Valhalla, some ideas have already been explored for some time and there is already a Java10 page on the OpenJDK website. One of Java’s strengths is that the designers have been very cautious on adding new things to Java – it really needs a compelling case before something is added, which has saved the language from becoming a ‘dumping’ ground for anything trendy in the last 20 years. So what might we see….

Project Valhalla already hints at 2 new features which have missed several previous releases of Java:-

  1. Values types could bridge the gap between int and Object, providing an intermediate ‘object’ which works much better on modern hardware and combines most of the benefits of Objects and primitives.
  2. Generic Specialization would allow us to use Generics with primitives. At the moment you can only use Objects (or any class extending Object). So you can have a List<String> but not a List<int> (except with the clunky work around List<Integer>).

It would also nice to see Project Panama in Java10. This is a project to replace JNI with the Foreign Function Interface – a better and much faster way to access native code.

Java10 will have the usual collection of lots of little improvements. Java9 added much better support for more modern ‘web’ technologies (security, http, etc) and I would like to see this continue in Java10. The Internet is where much development is now focussed and Java needs to play as well as possible with all Web technologies.

Functional Programming has been available since Lambda’s introduction in Java8 and it would be nice to see some improvements to this. Especially the ability to make more use of GPU hardware built into the system for numeric processing.

Java9 added support for REPL and in the past there have been suggestions for adding XML or SQL into the language. Do you think there is still a case for adding either of these?

What we will not see in Java10 is anything which radically breaks the backwards compatibility. But what I would most like to see is a chance to break from the past for new code. Maybe we could have a legacy flag which would give us a much smaller subset of ‘modern’ Java to write new code in.

What do you think should be in Java10? Anything you DO NOT want to see in Java10?

If you’re a first-time reader, or simply want to be notified when we post new articles and updates, you can keep up to date by social media (TwitterFacebook and Google+) or the  Blog RSS.

Related Posts:

The following two tabs change content below.

Mark Stephens

System Architect and Lead Developer at IDRSolutions
Mark Stephens has been working with Java and PDF since 1999 and has diversified into HTML5, SVG and JavaFX. He also enjoys speaking at conferences and has been a Speaker at user groups, Business of Software, Seybold and JavaOne conferences. He has a very dry sense of humor and an MA in Medieval History for which he has not yet found a practical use.
Markee174

About Mark Stephens

Mark Stephens has been working with Java and PDF since 1999 and has diversified into HTML5, SVG and JavaFX.

He also enjoys speaking at conferences and has been a Speaker at user groups, Business of Software, Seybold and JavaOne conferences. He has a very dry sense of humor and an MA in Medieval History for which he has not yet found a practical use.

One thought on “What should be in Java10?

  1. Guilherme

    Would be great if we could compile Java code to machine code if we wanted.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>