Ted Leung has written Is the language the only problem? in response to an entry by Tim Bray in which he talks up dynamic languages.
I am definitely a fan of dynamic languages, but I concur with Ted that the language isn't always to blame.
The Java APIs are often written to a different level to others. What do I mean here? With Java you get APIs that look like solid system libraries. With Perl/Python/Ruby/... you get libraries that are really written for a user to Get Shit Done (tm).
Just take a look at the "web service" APIs. The Perl ones let you grab an object in one fell swoop that lets you say obj.serviceMethod(..). Done.
However, there are many great Java APIs, both from the JCP and from the open source community. Since we always reuse a LOT more code than we write, it is great to be able to base apps on these solid APIs.
This does also bring me back to the fact that although tools can help us write Java code, they still aren't great at helping us read it... and for that reason I like dynamic languages in many cases.
Right tool and all that jazz.