It seems that complexity is not its own reward: industry analysts are noticing that Java gets in the way when you're developing loosely coupled "service oriented" applications. Here's Richard Monson-Haefel on the problem:
Even with the simplification of enterprise APIs in Java EE 5, the "platform has grown too complex to be workable for enterprise developers." However, a later statement is that "JEE5's failure to address complexity is a harbinger of the Java EE platforms' fall from dominance in the enterprise development platform arena." The implication is that the complexity is in the wrong place, not addressing actual problems, but existing in development and deployment.
SOA emphasizes interoperability more than cross-platform deployment, and the analysts say that Java EE is ill-suited for this (despite the existence of efforts such as Project Tango to directly address this.)
I think I've been saying that for awhile; it's nice to see other people catching up with the obvious. When you get buried in language complexity issues (generics, anyone?), then actually solving business problems gets to be troublesome. Doing loosely coupled services is going to be a lot easier in languages like Smalltalk, Ruby, Python, and even Perl. Of course, the Enterprisey types are already in full defense mode - from the same page:
In other words, most applications don't need a service model, and wouldn't benefit from one. As a result, catering to a service model would be a waste of resources and time. One architect from a Fortune 100, dismissed the report, saying that it's "an analysts group's cry for attention by trolling."
Note the courageous "standing behind his words" thing :) Let the architects man the barricades - I'll be over here, being productive.