Applause! However, it's not always about "saving keystrokes"... it's about lowering accidental complexity and making code easier to reason about by requiring less cognitive load on the reader.<p>Another example: the lack of literals for collections in Java. Imagine this:<p><pre><code> Map x = {"a": "A", "b": "B"}; // not Java
</code></pre>
vs:<p><pre><code> Map x = new java.util.HashMap();
x.put("a", "A");
x.put("b", "B");
</code></pre>
The first case is more declarative, and thus easier to grasp.
In the second case you have to read, parse and "execute" line by line in your head... (Does ordering matter? Does line 3 depend on line 2?, etc).<p>When things like these compound, you end up with code-bases many times bigger and harder to grasp than in other languages.<p>Granted: you can write shitty code in any language, nothing will save you from that... But I think Java makes it harder to write simple and concise code, even to experienced coders.<p>Then there's also the "cultural" thing many already mentioned ("enterprise Java")... which is very real, but no JEP/JSR will fix that ;-).<p>Brian shows brilliance, even at "trivial" issues. I trust his judgement :-).