On 12/21/14 1:59 AM, Russel Winder via Digitalmars-d wrote:

On Sat, 2014-12-20 at 15:16 -0800, Andrei Alexandrescu via Digitalmars-d wrote:
On 12/6/14 7:26 AM, Russel Winder via Digitalmars-d wrote:
Primitive types are scheduled for removal, leaving only reference
types.

Wow, that's a biggie. Link(s)? -- Andrei

Simon Ritter laid out the OpenJDK/JCP/Oracle thinking way back in 2011
in a number of conference presentations. cf.
http://www.slideshare.net/JAX_London/keynote-to-java-se-8-and-beyond-simon-ritter
 page 41 has the explicit statement of goal for JDK10. OK so this was
pre-JDK8 and reality has changed a bit from his predictions, but not
yet on this issue.

There are changes to the JIT for JDK9 and JDK10 that are precursors to
removing primitive types, so as to get rid of the last unnecessary
boxing and unboxing during function evaluation. Expression evaluation
is already handled well with no unnecessary (un)boxing.

Many see "value types" cf JEP 169 http://openjdk.java.net/jeps/169 as a
necessary precursor, but it is not exactly clear that this is actually
the case. It's a question of which JIT is part of the standard
reference implementation (OpenJDK) and what suppliers (e.g. Oracle,
IBM, Azul, etc.) ship in their distributions.

Although the vast majority of Java is used in a basically I/O bound
context, there is knowledge of and desire to improve Java in a CPU-
bound context. The goal here is to always be as fast as C and C++ for
all CPU-bound codes. A lot of people are already seeing Java being
faster than C and C++, but they have to use primitive types to achieve
this. With the shift to internal iteration and new JITS, the aim is to
achieve even better but using reference types in the code.

There are an increasing number of people from Oracle, IBM and Azul
actively working on this, so it is a well-funded activity. Targeting
JDK10 means they have 2 years left to get it right :-)

Hmmm... On one hand there's "make everything objects" in the slides, and on the other hand we have the JEP that adds value types. Confusing.

Andrei

Reply via email to