This just crossed reddit - Java needs an overhaul - having spent the last few weeks "drinking the kool-aide" so to speak, I can see (and comisserate) with some of the things he's saying. The standard lib is not, in fact, standard. There's an amazing amount of schizophrenia with the libraries in the stdlib, from style, to interface, documentation and general usefulness. Remember, I am not a Java expert by any stretch - I'm just someone coming into the playground and wondering why everything smells funny.
There are certain things in the language which I really do like (say, interfaces) - but then you have pieces that really feel odd, like the new generic syntax. The overall verbosity of the language (say, versus Python) is, well, frustrating ((Also, the seeming religious fervor that layers and layers of abstraction are used/adhered to is alien to me)).
This quote from the article rang a bell for me:
People have been tinkering with Java for years now, and there's still no hope in sight. There's something about the Java culture which just seems to encourage obtuse solutions over simplicity. As a Java developer, I was always so amazed at how difficult it was to use the standard Java Class Libraries for day-to-day tasks. Every app out there ends up having to include 20MB of .jars in order to get even the simplest functionality working because Java libraries are so low-level and incomplete. Having to write a loop to pull in bytes and assemble them into a StringBuffer myself if I want to get a web page is not only a pain, it's also incredibly short of implementing the HTTP standard compared to something like libcurl. Why is this sort of basic functionality missing from Java's standard install?
Java, like all languages is just another tool for your toolbox, and a useful one to boot - not to mention (as pointed out in the article) Java is everywhere. I'm enjoying learning it, even if I see problems with it (hey, I see places python could improve too!).