Java 25 officially released

Upgrading and LTS adoption

  • Many expect 8→11/17 as the painful jumps; once past modules and removed internal APIs, 17→21→25 is described as “smooth sailing.”
  • Some are already moving to 25 immediately; others joke their employers will still be on 17 “in ten years,” citing massive regression-testing burdens and risk-averse enterprise culture.
  • There’s debate whether upgrade pain is a Java problem or pure organizational mismanagement and library rot (e.g., ancient third‑party jars that never made it past 1.7).

New language/JDK features

  • Disappointment that structured concurrency is still not fully released, though some prefer the deliberate preview process to “standardize first, implement later” approaches in other languages.
  • Scoped values are welcomed for framework-style code without relying on global singletons or god objects.
  • Constructor changes (validation/transformation before super) are seen as fixing a long-standing misfeature.
  • Vector API and Valhalla are viewed as key for numeric/matrix work and ML; Valhalla’s long timeline is criticized but also praised as evidence of careful engineering.
  • Compact source files and instance main methods are seen as making Java more approachable for beginners.

Stability vs. migration pain

  • Several report very old Java code (even 1.4-era or Java 8) still running fine on modern LTS releases, reinforcing Java’s reputation for stability.
  • Others counter with horror stories where large, legacy systems could not realistically be moved off very old JVMs due to dead dependencies and massive rework.

Tooling, IDEs, and UI

  • Strong consensus that tooling (IDEs, refactoring like safe “extract method,” sophisticated profilers, GC tools) is a major part of Java’s value proposition.
  • Debate over Swing: outdated but stable and still works; JavaFX is generally preferred for new desktop apps, though some still like Swing’s maturity and cross-platform behavior.

Licensing and Oracle

  • Repeated clarification: OpenJDK (and downstream builds like Temurin, Corretto, Microsoft’s build) are GPLv2+Classpath and free to use; Oracle’s proprietary JDK has more complex licensing.
  • Some remain uneasy, arguing that needing to care about vendor distributions at all is friction compared to other ecosystems; others say this concern is overblown and comparable to commercial Python or Linux distributions.

Comparisons, culture, and verbosity

  • Many argue the JVM remains an excellent foundation versus Go, Python, TypeScript, etc., especially for large backends, threading, and observability.
  • Others think culture is Java’s biggest liability: “enterprise” patterns, over-abstraction, and verbose streams/Optional APIs, even though the language now supports more concise, functional styles.
  • Kotlin, Scala, Clojure, and C# are mentioned as alternatives that preserve JVM or Java-like strengths with more modern language features.