Updated below…

A scant few days ago I started throwing WBJUS around, and tonight, Small Language Changes for JDK7 appears. What timing!

  • Strings in Switch? WBJUS!
  • Automated Resource Blocks? WBJUS! (just a library too!)
  • Block expressions? WBJUS!
  • Exception handling improvements? Actually the Scala version of this is a bit ugly: catch e @ (_: IOException | _: RuntimeException ) => handleIt…
  • Improved Type Inference? Are they even trying? A most emphatic WBJUS!
  • A new syntax for wildcard variance? If you’re going to stay with use-site variance instead of definition-site variance, why bother changing the syntax? Deck chairs, etc. WBJUS!

Don’t get me wrong: I have the utmost respect for Sun’s stewardship of the bottom two-thirds of the Java ecosystem. The Java VM spec, Memory Model, HotSpot and significant chunks of the Java runtime library are world-class.

But Java-the-language? Scala, C#, Clojure, Haskell and every other language whose designers and managers are not cringingly risk-averse are beating it up and stealing its lunch money every damned day, and instead of fighting back, Sun is shopping for big dark glasses to hide the bruises.

Update: This article was posted to dzone where some additional discussion has taken place.