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!)

! (just a library too!) Block expressions? WBJUS !

! Exception handling improvements? Actually the Scala version of this is a bit ugly: catch e @ (_: IOE xception | _: RuntimeException ) => handleIt…

xception | _: 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.