Hasty Briefsbeta

Rating 26 years of Java changes

14 hours ago
  • #Java
  • #Programming
  • #History
  • The author reflects on 26 years of Java releases, rating significant language and core library changes.
  • Java 2 (1998) introduced the Collections Framework, which was functional but had design flaws (4/10).
  • Java 1.4 (2002) added assert keyword (3/10), regex support (9/10), and NIO (0/10).
  • Java 5 (2004) was a major release with generics (8/10), annotations (5/10), autoboxing (7/10), enums (6/10), and concurrency utilities (10/10).
  • Java 7 (2011) introduced try-with-resources (10/10) and minor syntactic improvements.
  • Java 8 (2014) added lambdas (4/10) and streams (1/10), which were controversial.
  • Java 9 (2017) introduced modules (-10/10) and jshell (6/10).
  • Java 10 (2018) added local type inference (var) (9/10).
  • Java 11 (2018) introduced a new HTTP client (6/10) and TLS 1.3 (9/10).
  • Java 14 (2020) added records (10/10) and better NPE error messages (8/10).
  • Java 15 (2020) introduced sealed classes (8/10) and EdDSA signatures (8/10).
  • Java 17 (2021) added pattern matching in switch (7/10).
  • Java 18 (2022) made UTF-8 the default (10/10).
  • Java 19 (2022) introduced record patterns (9/10) and virtual threads (?/10).
  • Java 21 (2023) added string templates (10/10) and sequenced collections (6/10).
  • Java 22-25 (2024-2025) introduced minor improvements and post-quantum cryptography support.