Thanks for correcting some of my semantics. :)
My point was that Python is a VM-backed language, similar to the JVM (more correctly, similar but lacking JIT), and unless you hit the GIL it performs quite well. Same as with Perl.
Here is Python's VM: https://hg.python.org/cpython/file/3.3/Python/ceval.c#l790
I'll attempt to agree with your Java sentiment by saying that Java only became worth a damn in 1.5.
Today it is respectable for a number of use-cases. My favorite use-case is JAX-RS 2.0. Anyone who writes REST interfaces in Node.js or almost anything else just likes to type a lot of unnecessary lines of code, manually injecting request parameters into business logic and manually creating encoded responses, etc. (Webmachine in Erlang, Ruby or Python is almost as respectable as JAX-RS 2.0 & Jersey.) In JAX-RS 2.0, my same web-annotated business objects and structure-annotated value objects can serve application/xml, application/json and application/x-www-form-urlencoded inputs and outputs without me having to write a single line of plumbing or conversion code, letting me focus on the business logic and domain object model alone.
In the event processing system I referred to, we rewrote it in Java and acheived many improvements in speed over Python (due to our I/O bound multithreading and, of course, avoiding IPC-in-Python along the way, which would have helped, as you say).
FWIW, Puppet is moving from Ruby to JRuby... I'm not a huge JVM fanboy, but it has its benefits on occassion, especially if you can avoid all instances of legacy code and legacy APIs. (Java has a done a better job of learning from their mistakes, but the mistakes linger in legacy code.)
PS: It is not well-known, but it is possible to do reified generics in Java with some hackery (with concrete anonymous abstract classes), if you really need some C++ template love in your codebase.