It isn't a "Sexy" PL change, but a full foreign function interface will be a huge change. In my experience, relying on the old java JNI based libraries seems to be one of the biggest things that break in upgrades. So I am hoping this will reduce the maintenance burden of Java.
Linkable features https://openjdk.org/projects/jdk/22/
For me personally the most interesting one is JEP461 (Stream Gatherers) https://openjdk.org/jeps/461
This will allow addition of interesting stream operations.
Although I like Kotlin better, I'm really impressed how Oracle continues to improve Java. Some developers think Java is an old, cumbersome language, but it is indeed such a productive language and ecosystem with outstanding quality! Java has quite good support for functional programming, concise and immutable structs (called "records"), pattern matching, string templating, virtual threads, structured concurrency (preview for now), a vast ecosystem with outstanding quality, world class documentation, a fast and robust runtime and so on.
Even after nearly 30 years, Java is still a good choice to start something new (e.g. a startup).
Foreign Function Interface is one of the key advantages what C# had over Java (e.g. against huge APIs like Android or macOS). I am really curious how this JEP turns out.
It's kind of startling to see how many places still use Java 8, estimated at ~1/3 of projects according to a survey i just googled. And something like half that still use java 11.
Examples [1] of these features.
Now this may seem like a silly question, but if I only want to run Java apps on macOS, what should I install from MacPorts? Searching for "JRE" gives no results. Searching for OpenJDK gives various options including:
- OpenJDK21: https://ports.macports.org/port/openjdk21/details/ , - openjdk21-zulu: https://ports.macports.org/port/openjdk21-zulu/details/ - openjdk21-oracle: https://ports.macports.org/port/openjdk21-oracle/details/
each of them having so many variants (see the links). What variant needs to be installed to just run a Java app?
Sweet, G1 keeps getting better for free. Time to cut a new build tag for this.
Interesting to see the developments on the String Templates API using the STR and fmt template processors.
“Vector API (Seventh Incubator)”
Seven iterations? What is going on with vectors in Java?
Unrelated to Java, but it’s so refreshing to see a simple HTML page for once
Why would I use Java 22 over Kotlin?
So does this fix the crashing issue with macOS Sonoma 14.4? https://arstechnica.com/gadgets/2024/03/usb-hubs-printers-ja...
Maybe my favorite feature in this release:
https://openjdk.org/jeps/463
Finally solves the inscrutable Hello World program!
Yes, it's just ergonomics for early beginners. But could be the difference in whether or not someone new to programming sticks with Java or not.