I think that if Java really was designed as a CS Ivory Tower language, it might be a lot better.
Java is designed to limit the flexibility of mediocre programmers through highly strict interfaces and a high-activation-function to overcome the pain of the standard library and the castrated OO system and syntax.
Yes, the standard library is powerful, but no more than CPAN (Java is technically weaker -- they accept the minimum set of commonality across platforms, hence no Authen::PAM equivalent for Java), and certaintly not more so than the c-libraries on my Linux box. And there are the platform-specific JVM bugs and various problems that you won't get Sun to fix no matter how hard you try...CS departments use Java only because industry is controlling, and students want buzzword-compliant jobs.
"Ivory Tower" CS languages are designed to be supremely powerful and resemble the incantations of wizardry. Of course, you occasionally drift into implementing things recursively when they should not, etc, etc ... which can be a sign of the wizards getting too fond of showing off.
Fortunately Perl is closer to the later, and will be more so with Perl6.