In my opinion, Java is a clumsy language but the JVM is awesome. Static typing and lack of first-class functions or easy data types make Java programs verbose and annoying to change. The JVM, on the other hand, is fast, portable, well-specified, and there are a ton of libraries that run on it.
To have the best of both worlds, you can use the JVM to run a more dynamic language (not Java)! There are many projects to bring different languages to the JVM, but my favorite is Rhino, which compiles JavaScript to bytecodes. Rhino is also what powers my favorite web framework, Helma.