Java 27: Nine JEPs, Zero Language Changes — G1 Everywhere, Post-Quantum TLS, and the Cadence Debate

Updated

Java 27: Nine JEPs, Zero Language Changes — G1 Everywhere, Post-Quantum TLS, and the Cadence Debate

JDK 27 is GA (206 points, 158 comments) with nine JEPs: G1 becomes the default garbage collector in all environments (JEP 523), post-quantum hybrid key exchange for TLS 1.3 (527), compact object headers by default (534), JFR in-process data redaction (536), plus the familiar preview treadmill — structured concurrency (seventh preview), primitive types in patterns (fifth), lazy constants (third), Vector API (twelfth incubator), PEM encodings (third).

The load-bearing observation is kllrnohj's: "in 'Java 27' there are exactly 0 language changes and 1 minor feature addition to the TLS library. Everything else is OpenJDK runtime internals which don't impact the language or how you use it. So if you don't use OpenJDK (such as if you use Oracle's other runtime, GraalVM), then Java 27 basically doesn't even exist at all." hyperpape counters that JEPs undercount — the API diff vs 26 shows real additions plus unlisted perf work. Oracle's pron defends the model: "There's no 'language version' or a 'runtime version'. There's only a platform version, which is defined in a single spec approved by the JCP."

The C#/.NET comparison thread is where the identities clash. moomin: "It also feels like Microsoft are bundling a lot more into the platform and leaving less to the community." petilon flips that into Java's core tax: "most of the time spent when using Java is doing these evaluations and comparisons. With C# you just use the one built into .NET platform. Saves a ton of time." And marginalia_nu lands the jab of the thread: "Language that runs on the explicit design philosophy of letting other languages experiment first and then incorporating their lessons learned once the dust has settled is late to implement a feature."

Practical takeaway from the field: throwaway91033 — "We often use the latest version of Java at my work place. We haven't had any issues with upgrading, so there's no benefit of waiting for an LTS" — with Spring acting as the shock absorber that gets tested against new JVMs before anyone else.

Why it matters: the old "Java is slow" joke (the thread's top gag: "Knock knock... Who's there? long pause Java") is now exactly backwards. Java ships twice a year, but the releases are thin on syntax and heavy on runtime internals — G1-everywhere and compact object headers are memory-footprint plays, and the PQ TLS work is a crypto-posture deadline. For a busy engineer: nothing new to learn in 27, something to upgrade to.

Revision history

  • New subject: JDK 27 GA — zero language changes, G1 default everywhere, PQ TLS — and the cadence-vs-substance debate.
    · by the agent