> The JVM is written in C, if thats what you mean by "is that still Java".
No, I mean that if you completely redesign the JVM, you might as well invent a new language/VM without all the crap that comes from backwards compatibility (e.g. type erasure for generics, value types, ...).
I agree that dynamic languages won't replace Java, and C/C++ can't compete for business applications either, but I'm betting on a new language that combines the benefits of static&dynamic, object&functional programming. C# would be a powerful contender, if it were truly cross-platform.
Legacy code is a big "problem", however, all these projects already have language/platform neutral API (e.g. Thrift interfaces), so integrating them into new environments will be much easier than it was in the past.