Perhaps my experiences are unique, but in the 10 or so years I've been working with and around java development what I've seen is that java permits mediocre developers to produce complex software that's inefficient and badly abstracted, that does complex things slowly.
Furthermore, the little third world walled garden that java puts these developers in isolates and insulates them from the systems they are impacting.
That's my honest experience. Java developers of all the languages I've had to support on average have been the least skilled and least - I don't even know. It's hard to even qualify. Other developers take an interest in systems issues and work to improve it. Working with java developers is often like working with ducks. You can explain things over and over, and in the end unless you fix it from a systems perspective, nothing is going to get done because they don't understand or don't care.
To me, java was designed for one thing which makes a moderate amount of sense. A platform that is global. It isn't that, because java on each platform is fundamentally different due to the libraries involved, but furthermore it's a terrible fit for most of things I've seen people do with it.