I think we can agree that we sorta agree at this point, but have slightly different outlooks on the problem =) I'll just be annoying and mark a couple of your words:

"There is no doubt that a program written in C++ will out perform the same program written in Java."
Actually, this is not _strictly_ true. Not in a real sense, and not necessarily in a technical sense either. In the real sense it's because real programs has to be made by real people. Real people have real difficulties with the real (:-P) hard work of getting things just so in C++. They might (very realisticly) end up with a less optimal solution in C++ because it was easier to get right. In a technical sense there is some neat technology in a Java VMs that do under some sets of circumstances allow them to be faster than the corresponding C++ code. This has to do with the fact that the real time compilers these VMs use are able to gather and use run-time statistics about the running program and thus specialize the running code. Most often this is more than offset by the added overhead of Java's dynamic behavior, but for certain task this theoretical advantage of run time information actually transforms into faster code. This advantage could get more important as compiler tech get more advanced.


"Things such as garbage collection take CPU time."
But does it always take more time than doing manual garbage collection? In C++ people often resort to reference counting (smart pointers) when doing more compilcated stuff. It's not really hard to show that reference counting has worse amortized behavior than a copying collector. The same can often be shown for any manual (piecemal, techniques like memory arenas offset this) memory management. Now, for (soft and hard) real time applications, such as games, amortized behavior might not be the most important differentiator. Manual memory management has more predictable performace characteristics. The Great Computer Language Shootout (http://www.bagley.org/~doug/shootout/) has plenty of examples where garbage collected languages beat out for example C++. (I'll make no claims that this site is scientifically valid.)

I'm wordy, am I not?=)