Valhalla - Where Are We? #JVMLS

preview_player
Показать описание
Presented by *Brian Goetz* - Java Language Architect (Java Platform Group - Oracle) during the *JVM* *Language* *Summit* (August 2024 - Santa Clara, CA).

_*Project Valhalla* wants to heal the rift in #Java's type system between classes and primitives by introducing value classes, which "code like a class, work like an int" and offer a flat and dense memory layout. Java's epic refactor, as it has been dubbed, has been going on for 10 years but is now entering the home stretch. At #JVMLS 2024, Java Language Architect Brian Goetz explained the proposed solution: value classes (already available in an EA build), null-restricted types, beefed up definite assignment analysis, and strict initialization._

*Chapters*
0:00 Executive Summary
7:19 Brief History
15:26 Value Classes ⟪~⟫ Object Identity
24:03 Null-Restricted Types ⟪~⟫ Nullability
31:53 Strict Initialization
35:06 The Cascade of Simplification
40:19 Serialization
41:13 Flattening & Tearing Values
47:10 Mopping up

*Resources*

*Tags:* #OpenJDK #Valhalla #Performance
Рекомендации по теме
Комментарии
Автор

I hope I can use Java with Valhalla before getting to Valhalla

DavidDLee
Автор

"No new bytecodes, no new type descriptors and no new constant pool forms". Damn. That's epic research and design approach for Valhalla.

JoeMwangi
Автор

Great insights what is under the hood ... and how the improvements are thoroughly thought through and coming step-by-step into the language... Great thanks to all people who are working on that... with so much passion and with so much attention to details, which in the end leaves a very rounded impression in the language.

khmarbaise
Автор

Top 5 things that I am incredibly excited about in java:
Type enforced nullability (thanks Valhalla)
Project Valhalla
Project Valhalla
Project Valhalla
Project Valhalla

lapissea
Автор

Brian and his Valhalla team have just discovered the E=mc² of Java. It really is so beautifully elegant. Now they have a little matter of general and special relativity to iron out and then they’re done. I’ve been watching this space for the last 10 years and am super impressed with how clean and simple you’ve made it. Well done!

lukaszmachowski
Автор

After years of waiting there is a light at the end of the tunnel. Looks really neat. Kudos to all the engineers and researchers ❤

ales-rocks
Автор

incredible how clean the suggested design is. awesome work - thanks a lot. can't wait to see this in production.

Linuxhippy
Автор

Thank you for make me love Java a little bit more, it is really nice to see the process of modernization from inside and learn from your experiences.

Автор

Thank you for a sensible track on operator overloading!

danhoward
Автор

I love how this is the first JVMLS video I can't watch now but have to wait for.

Edit: To be clear, this comment is written in good fun. On a more serious note I'm thoroughly impressed with the work the Java team has done in the past few years and as a long time Java dev, I appreciate and much prefer the "get it right" approach and mentality.

hugithordarson
Автор

Congratulations!!!
Java is going to be the most amazing language ✨
Thank you for listening the DDD community and taking improvements from other languages 👏

techaido
Автор

Wow, I am impressed! There obviously are genial and brave design decisions involve. This seems to be another huge step forward. Maybe we can see a bunch of this already with next LTS Java25?

jurgen
Автор

The architect of the best programming language will talk about the best upcoming feature

face-it
Автор

This is what happens when you let features bake, it's why Java is my favorite language.

gudenau
Автор

I actually did ask for stricter initialization, but flexible pre-initialization is much better than the constant, static initialization I originally asked for. Great work, I'm very excited to see Valhalla in the standard JDK!

clementcherlin
Автор

I am somewhat disappointed that "integrity first" means we don't get flattening for complex values unless we make our code messy with explicit
If the language has a volatile keyword specifically to designate things that are intended to be updated from multiple threads, why isn't everything else that doesn't have this attribute allowed to tear? It seems like a strange choice to disable all these optimizations just because someone out there may be writing poorly protected multithreaded code.

gigaherz_
Автор

Great stuff! Can we declare a class non-nullable by default to save people having to use "!" everywhere?

prdoyle
Автор

I'm really looking forwards to when our Java based IDEs are running on an Valhalla JVM. I wonder what speedups and memory efficiency gains we'll get.
And then just consider consolidation of VMs in data centres. We might manage to offset the increased demand that LLMs are putting on building, powering and cooling them.

NealeUpstone
Автор

Can't wait to create leetcode code that you can actually read, without primitive juggling. Keep the great job 🙏

davidhsv
Автор

Hope we got a oreview for OpenJDK 24, that would be great 👍

Ewig_Luftenglanz