SecurityManager dies not with a bang, but a whimper. The professor who taught a generally-misguided Java elective extolled the benefits of the security manager whenever he could. I was tremendously skeptical at the time. I'm inappropriately smug to have been proven right now, several decades later.
I really want structured concurrency out of preview!! I think it helps close one of the last gaps golang has over Java in the ease-of-concurrent-programming side of things. Go makes channels and waitgroups pretty easy. I think structured concurrency is a great side-step of those primitives by actually making the higher-level tasks you use those tools to accomplish easier to write and reason about. Continuing a trend I see where go tends to have somewhat better primitives, but then obstinately does nothing with them to actually make the higher-level tasks easier to accomplish.
No pinning virtual threads is huge. Finally you can virtual thread with near-wild abandon, as God intended.
Love seeing Streams still getting love. I do a lot of fizzbuzz-esque interviews (the "can you code your way out of a paper bag" type screens) for my company and I think it says a lot that, in general, people who pick Java and use streams pass but people who don't use streams often get tripped up in their loop logic and fail (or, even if they don't fail per se, don't pass). It says a lot about ergonomics and intuitiveness, and also the power of the abstraction to tersely and compactly solve real problems, when a language is a big ally in interviews. And the cool thing about Java streams is that they're as powerful as Ruby's functional-style operation chaining (arr.map{}.reduce(:+) etc) but they're actually performant. I feel it also bears mentioning that people who use Ruby in these interviews, few as they are, almost always pass and do so while writing very few LOC :)
Surprised nobody mentioned JEP 491 [1] yet. Basically it ensures the "synchronized" keyword can no longer mess up virtual threads. That's a big win for running existing code in virtual threads.
Java’s version growth has been interesting to watch the past few years. I remember thinking “wow 9 is out, now 10, 11 is an LTS, we’ll go to that”. Still on Java 8. Too much other things to do.
How is Java these days compared to Kotlin, comparing latest versions of both? I know Java continues to improve and take features from Kotlin but Kotlin is also improving itself.
JEP 484: Classfile API is going to be huge. It will take a while for full adoption, but finally being able abstract the backend of ByteBuddy/ASM/etc will be a gigantic boon. Being able to read/write classifies is one of the biggest hurdles at upgrade time.
I stopped following java ecosystem closely around the time java 9 was released (last new thing I remember is the introduction of modules). How much has the language/bytecode/VM changed since then? What would be the best resources to catch up that won't take too much of my time?
SecurityManager dies not with a bang, but a whimper. The professor who taught a generally-misguided Java elective extolled the benefits of the security manager whenever he could. I was tremendously skeptical at the time. I'm inappropriately smug to have been proven right now, several decades later.
I really want structured concurrency out of preview!! I think it helps close one of the last gaps golang has over Java in the ease-of-concurrent-programming side of things. Go makes channels and waitgroups pretty easy. I think structured concurrency is a great side-step of those primitives by actually making the higher-level tasks you use those tools to accomplish easier to write and reason about. Continuing a trend I see where go tends to have somewhat better primitives, but then obstinately does nothing with them to actually make the higher-level tasks easier to accomplish.
No pinning virtual threads is huge. Finally you can virtual thread with near-wild abandon, as God intended.
Love seeing Streams still getting love. I do a lot of fizzbuzz-esque interviews (the "can you code your way out of a paper bag" type screens) for my company and I think it says a lot that, in general, people who pick Java and use streams pass but people who don't use streams often get tripped up in their loop logic and fail (or, even if they don't fail per se, don't pass). It says a lot about ergonomics and intuitiveness, and also the power of the abstraction to tersely and compactly solve real problems, when a language is a big ally in interviews. And the cool thing about Java streams is that they're as powerful as Ruby's functional-style operation chaining (arr.map{}.reduce(:+) etc) but they're actually performant. I feel it also bears mentioning that people who use Ruby in these interviews, few as they are, almost always pass and do so while writing very few LOC :)
New features: https://openjdk.org/projects/jdk/24/
For ARM32 and Risc-V releases they should appear in the coming days here: https://bell-sw.com/pages/downloads
Raspberry 2 and Vision Five 2 are very future proof peices of hardware that Oracle and OpenJDK ignores!
Dumb question, but what are the licensing implications between using an OpenJDK vs the official Oracle Release of the JDK?
Surprised nobody mentioned JEP 491 [1] yet. Basically it ensures the "synchronized" keyword can no longer mess up virtual threads. That's a big win for running existing code in virtual threads.
[1] https://openjdk.org/jeps/491
Java’s version growth has been interesting to watch the past few years. I remember thinking “wow 9 is out, now 10, 11 is an LTS, we’ll go to that”. Still on Java 8. Too much other things to do.
nice discussion, fwiw i added a structured summary here https://extraakt.com/extraakts/java-24-discussion-features-v...
How is Java these days compared to Kotlin, comparing latest versions of both? I know Java continues to improve and take features from Kotlin but Kotlin is also improving itself.
Already installed, GraalVM is also available for Java 24.
Lots of goodies.
Finally no pinning for virtual threads!
JEP 484: Classfile API is going to be huge. It will take a while for full adoption, but finally being able abstract the backend of ByteBuddy/ASM/etc will be a gigantic boon. Being able to read/write classifies is one of the biggest hurdles at upgrade time.
Java 24 already? What’s the standout feature this time—anything that makes it worth upgrading from 21? Always cool to see how it keeps evolving.
I stopped following java ecosystem closely around the time java 9 was released (last new thing I remember is the introduction of modules). How much has the language/bytecode/VM changed since then? What would be the best resources to catch up that won't take too much of my time?