Java as a language isn't fun - I haven't used it for many, many years now - but the advent of JVM-targeted languages makes the Java ecosystem fantastic.
Starting with the JVM - a very good machine that runs on pretty much anything, without having to re-compile your program. Perfect, no, but is anything? And the performance (given that it's a virtual machine) is top-notch.
Then there are the JVM-targeted languages: Scala, Groovy, JPython, BeanShell, etc, etc... Pick your poison.
Then there is a crap-ton of very useful libraries out there, and they can be used with any of the above targeted JVM-targeted languages.
So, we can whine about Java (the language) but really, I use it (the JVM, the other languages, and the libraries) to get stuff done. Cool, no. Productive, yes.