Live data from Hacker News

Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

jvm-weekly.com

301–310 of 464 posts

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#301

Earlier quoted context omitted.

I learned that exact style of writing in a marketing workshop, pre-AI. It's effective, satisfying, and a random third thing I can't be bothered to come up with right now. As a proportion of all easily crawled text on the internet, a lot of it will be random marketing copy. That influenced the writing style of early AIs, and since then everyone has trained at least partially on transcripts from every other AI chatbot

Oh my god did we inadvertently train AIs on idiotspeak.

It's engaging and I doubt it happened by accident.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#302
post #108
post #15

> But careful: == looks at internal state, which isn’t always what the object represents, so for “is this the same data” comparisons keep using equals. So == for value classes will basically be like memcmp() . That is a bit unfortunate, as it breaks encapsulation, exposing implementation details. Client code can use this to do case distinctions based on how a given value is internally represented. In a way, it’s wors…

I wanted to comment on this as well. The article mentions it but if you've never used Java in anger (is there any other way?) then readers may not understand the true implications of this because it's a breaking change, something Java rarely does. I'll explain for the non-Java people. Java separates checking identity and equality for objects. == basically checks if two pointers are the same. Equality is a subjective…

> new Integer(10) == new Long(10) // compiler error, used to false

wait, really? I thought introducing _such_ incompatibility was not allowed

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#303

Earlier quoted context omitted.

I learned that exact style of writing in a marketing workshop, pre-AI. It's effective, satisfying, and a random third thing I can't be bothered to come up with right now. As a proportion of all easily crawled text on the internet, a lot of it will be random marketing copy. That influenced the writing style of early AIs, and since then everyone has trained at least partially on transcripts from every other AI chatbot

Oh my god did we inadvertently train AIs on idiotspeak.

It seems to be called the Rule of 3. see https://en.wikipedia.org/wiki/Rule_of_three_(writing)

Like Caesar's supposed "Veni Vidi Vici" saying, people seem to prefer and remember items when grouped in three.

I recall a public speaking film shown to my management science class starring John Cleese mentioning this rule of 3.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#304

Earlier quoted context omitted.

I learned that exact style of writing in a marketing workshop, pre-AI. It's effective, satisfying, and a random third thing I can't be bothered to come up with right now. As a proportion of all easily crawled text on the internet, a lot of it will be random marketing copy. That influenced the writing style of early AIs, and since then everyone has trained at least partially on transcripts from every other AI chatbot

Oh my god did we inadvertently train AIs on idiotspeak.

Given that this specific style is the result of being reinforced over and over again via RLHF, "inadvertently" isn't really the word I'd use.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#305
post #295

After reading a lot of comments in here, there is one thing that always repeats itself in Java/JVM-related comment sections on HN. There are a surprising number of people who have an idea of what the JVM or Java used to be and have very little idea of what it is today. It is a very fit predator in 2026. Does it have its warts? Yes, but the substrate is extremely good.

Many of us work on Java monoliths that started in the 2000s when it was in vogue and we still have to keep them chugging along on Java 8. Personally I'm familiar with all the new features that have come out in the last few years, but for my actual work, java is literally stuck in the past.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#306
post #209

> But the difference in memory is fundamental. The JVM can now store the values themselves in the array, laid out densely one after another: 8 bytes per point (plus a possible null flag), in a contiguous block. No headers per element. No pointers. No jumping around the heap. How much was this article proof-read? Didn't they just get finished talking about how heap flattening won't work for objects with > 64-bit repre…

18446744073709551616 possible values and you can't spare 1 for null? :) TIL that Rust has NonZeroU64 which you can combine with Optional to get the required behaviour with only 64 bits per entry. [1] [1] https://doc.rust-lang.org/std/num/type.NonZeroU64.html

In many cases, NonMaxU64 and NonMinI64 (aka SymmetricI64) would be much more useful though. But Rust is aiming to eventually add a more general way to create types with user-defined ranges, such as the "pattern types" feature currently being prototyped.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#307
post #249

Earlier quoted context omitted.

The obviously used too much AI, I stopped after 2 paragraphs

I'm tired of people jumping in to point out "AI, AI". The article is very good and informative. That is the only important thing. Geez.

>The article is very good and informative.

But you don't know which parts of it are true.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#308
post #45

A lot of the comments on here are a bit unfair on what is great work being done and even more awesome work (JEPs) in the pipeline for the future. If Java was a child, imagine it being brought up by loving parents for the first few years (Sun) then it was thrown in a garage with some other children and neglected by its evil guardian (Oracle) Neglected and unloved till JDK 8, its basically been playing catch up. So whe…

> If Java was a child, imagine it being brought up by loving parents for the first few years (Sun) then it was thrown in a garage with some other children and neglected by its evil guardian (Oracle) Whether you like oracle or not, this is simply not a correct description of Java's history. It was brought up by loving parents, who due to financial problems had to put Java into a foster home where she was neglected. Bu…

Well, Oracle may have done fine, but IIRC open sourcing the JDK was Sun's very penultimate move on its deathbed. Oracle inherited the license to the trademark, but the actual JDK was already free.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#309

Earlier quoted context omitted.

Embedded systems? Like sim cards? There's even real time Java, I think they used it for some missile guidance stuff aswell at some point

> Embedded systems? Like sim cards? Serious question: I remember the old installer, six billion devices or whatever. I’ve heard about Java ME, old set-top boxes and DVD players, etc. But how much of that is active today. I can’t say I’ve ever seen a job listing for an embedded Java developer or even Java ME in my entire career. Are people actually still using it?

Actually yes. Pretty much most credit cards are in fact JavaCards.

Weird but true, and quite obscure.

Re: Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#310
post #245

Earlier quoted context omitted.

> inaccuracies Like what?

legacy .NET to .NET Core (which was renamed once again to .NET) It was always .NET, only that new one had 1 till 4 had additional "Core" to clarify any confusion that could come from having same numbers as old. here's .NET's simplistic garbage collector ... it tries to be a one-fit-all solution that basically cannot be tweaked at all Definitely tweaking GC is not a thing in .NET land but it is far from "cannot be twe…

> It was always .NET

No, it was not. What's called .NET now used to be .NET Core. And then there's .NET Framework which was commonly known as .NET.

> "cannot be tweaked at all"

Are you serious? Not only does the JDK have multiple GCs for different use cases (Serial, Parallel, G1, ZGC, Shenandoah), they have very refined tuning settings (https://wiki.openjdk.org/spaces/zgc/pages/34668579/Main#Main... / https://docs.oracle.com/en/java/javase/25/gctuning/garbage-f...). What does .NET let you do with the GC? Set the hard limit? Maybe turn on/off concurrent collection? That's not tuning, that's triviality.

Post reply on HN