While we are spewing crap…
C++ can be exactly the same speed as C… depending on what features you use and how you use them C++ simply makes it easier to get a feature that you would have to write more code for in C. (E.g. jump tables in C vs. virtual functions in C++)
Assembly and machine code are exactly the same speed, because Assembly is simply a way to write machine code that is easier to read than a bunch of hex.
I can show you examples of Java programs that run faster than C++. It all depends on what you are trying to do. There are trade-offs to every alternative. In general VMs run a bit slower than native compiled code… but as should be evident to anyone paying attention, that is changing… VM technology is getting more advanced, raw computing speed in a VM is approaching that of natively compiled code. The small trade-off in speed that remains can be thought of as the cost of the benefits that a VM gives you (better error checking, and the productivvity that arrises from it… easy dynamic code loading, platform independance…)
There are several valid answers to both “Why?” and “Why not?”
Is Java a viable alternative for real commercial games… no need to ask it has already been used in successful commercial games, so obviously the answer to that one is “yes”… Is it the right choice for you and your game? That depends…