Java 23: The New Features Are Officially Announced
Constructor / language changes
- Many are excited that Java 23 allows statements before
super(...), enabling validation or preprocessing before base-class construction. - Some argue the original “nothing before
super” rule never really prevented constructor footguns, since you could still trigger problematic behavior via field initializers or method calls insidesuper(...)arguments. - Others note that even with the new flexibility, care is still needed to avoid leaking partially constructed
this.
Vector API and performance
- The Vector API is generally viewed positively as a way to access SIMD safely and portably on the JVM.
- A competing view suggests that if cross-platform SIMD performance is the main goal, .NET’s vectorization APIs and guidance may currently be more mature.
Java vs C#, Kotlin, Scala, others
- One side claims there is no language-level reason to start new projects in Java instead of C# today; if ecosystem needs allow, other languages may be more attractive.
- Counterarguments emphasize Java’s balance of performance, productivity, observability, backwards compatibility, and long-term stability for decade‑scale codebases.
- Debate over .NET: some say it’s now very cross‑platform and often deployed to Linux containers; others distrust Microsoft’s openness and tooling, especially on Linux.
Kotlin and the wider JVM ecosystem
- One stance: Kotlin is mostly relevant on Android, driven by Google, and won’t “rewrite” the broader Java ecosystem.
- Others report server‑side shops where virtually all new JVM code is Kotlin, including non‑Android contexts.
- Reported obstacles to wider Kotlin adoption: slower compilation vs
javac, smaller talent pool, single dominant IDE vendor, and Java steadily adopting many of Kotlin/Scala’s most broadly useful features. - Supporters still highlight Kotlin’s null safety, concise syntax, context receivers, structured concurrency, and strong Spring Boot integration.
String Templates feature
- Several commenters are disappointed or confused that the String Templates preview JEP was removed from Java 23 after multiple previews.
- Links show it was fully backed out from the JDK repo due to largely negative feedback and a planned redesign; it may reappear in a different form in a later release.
Article quality and release status
- Multiple comments call the article AI‑generated and partially plagiarized (especially from an Infoworld piece), noting nonsensical transitions (e.g., tying
super(...)to string templates) and misattributed “beginner‑friendly” claims. - The blog’s framing that Java 23 features are “officially announced” is disputed; commenters stress that only the OpenJDK JDK‑23 project page reflects the current, not‑yet‑finalized feature set.