Live data from Hacker News

Java 17 / JDK 17: General Availability

mail.openjdk.java.net

11–20 of 251 posts

Re: Java 17 / JDK 17: General Availability

#14
post #4

If only I could understand the difference between java 1.8, 8 and 18.

https://en.wikipedia.org/wiki/Java_version_history

> J2SE 5.0

> […]

> The release on September 30, 2004 was originally numbered 1.5, which is still used as the internal version number. The number was changed to "better reflect the level of maturity, stability, scalability and security of the J2SE".

and

> This version introduced a new versioning system for the Java language, although the old versioning system continued to be used for developer libraries:

>> Both version numbers "1.5.0" and "5.0" are used to identify this release of the Java 2 Platform Standard Edition. Version "5.0" is the product version, while "1.5.0" is the developer version. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE.

>> — Version 1.5.0 or 5.0?[32]

[32]: http://docs.oracle.com/javase/1.5.0/docs/relnotes/version-5....

Re: Java 17 / JDK 17: General Availability

#17

Reportedly, not much "big new stuff" got into this release (maybe next time), but it's an LTS so it's not the best time for that anyway.

Can't remember where I heard it, but the thought was that "big stuff" was skipped in case it created bugs that then had to be maintained for the entire LTS support period.

Re: Java 17 / JDK 17: General Availability

#18
post #12
post #7

Are they going to introduce zero-cost structs? Kinda like Rust guarantees that Option has the same size as T (aka free like in free beer).

Primitive classes are being worked on in Project Valhalla.

I think this statement has been true since about 2014.

Structs are nice, as they allow for control over locality, to a degree that is simply not possible in Java currently. But there is a second effect, which is possibly more important: If I can move gigabytes of my data into arrays of structs, then 1) I greatly reduce memory requirements (far fewer pointers), and 2) I greatly reduce the amount of work that GC has to do.

This is such an important thing to add to Java, and it seems to be perpetually off the stove, not even on the back burner.

Re: Java 17 / JDK 17: General Availability

#20
On its own, the features specifically for Java 17 aren't obviously that compelling, but the important thing is that Java 17 is an LTS, the last one of which was Java 11, 3 years ago. Since many organizations, including mine, stick to LTS releases, that means a lot of developers will get a big change in what they can do sometime in the next few months as they upgrade to the LTS.

Among other things, this means that we can begin to use records, pattern matching for instanceof, the shenendoah GC, and more.

Links to JEPs for the other releases.

http://openjdk.java.net/projects/jdk/16/ http://openjdk.java.net/projects/jdk/15/ http://openjdk.java.net/projects/jdk/14/ http://openjdk.java.net/projects/jdk/13/ http://openjdk.java.net/projects/jdk/12/

Post reply on HN