Quote:In theory? Runtimes provide platform and language agnosticism. You can write any number of languages to target either the JVM or .Net CLR. They also do have some platform specific knowledge, and can provide platform optimized compilations that directly compiled code, though imagine this isn't particularly common.
Personally I like some of the features that a runtime can provide. Things like memory management and garbage collection, which while it can be done in C++, you have to be a lot more conscious about it. Depending on the rutime they can also provide easier profiling, debugging, language inter-op, or reflection capabilities. That's not to say these are exclusive to runtime based languages, but they're often much easier to use or implement in those languages.
Any insignificant performance impacts are well worth those features. And if I run into a situation where I really do need that last bit of performance, I can just write a bit of C/C++ code and call into that from my language of choice for the critical sections.