No, he's right. Now, Java is not such a terrible language. On a 1-to-10 scale, it's a solid 5. (5.01? Can I make that joke?) It's unpleasant and verbose, but the early Java community had real language designers, and even some heavyweights, behind it (including Odersky, designer of Scala) and believe me, they've made more good decisions than bad ones. (Language design is hard, yo.) They got Unicode right in a time where expert language designers had their heads in the sand on that one (UTF-16 is annoying, but it's a hell of a lot better than byte arrays and strings living in the same type.) However, Java was inevitably hijacked by the "commodity programmer" culture where businessmen make decisions based on risk-limiting amid mediocrity rather than clearing barriers and allowing excellence (as well as a few non-starters, cf. Paul Graham's notion of "Black Swan Farming") to shine. It's not a fun language to use, and the community that has grown up around it since its inception has shown bad taste (J2EE, Maven, Eclipse). But for a period of about a decade, Java was the best (if not only) choice for a variety of problems.
Also, Java managed to succeed in the enterprise by feasting on Cobol's corpse, but it built up a Detroit: a good-enough but unattractive infrastructure that thrives when people have solid economic reasons to care about it, then is abandoned rapidly when the context changes.
Groovy, Scala, and Clojure came out of an interesting insight: there's some stuff in the JVM ecosystem that's too valuable to abandon just because the Java language is (albeit slowly) dying. It'll be interesting to see how these languages evolve in the next 15 years. Clojure is (IMO) the best Lisp, and Scala is exciting as well... but there's a lot of cultural legacy to deal with (there's plenty of bad Scala code being written by recently-promoted Java programmers; most of them will improve massively as they get a hang of the language, I hope.) Step 1 is to either improve or fire the FactoryFactory crowd in its entirety.