- 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.