For a long time I have hoped that managed code will beat statically compiled code one day. Managed code can make software more secure, CPU-architecture-independent and makes it easier to generate executable code. The only remaining problem is the performance. Theoretically managed code should be faster than native code that the linker does not understand, because of the better optimization opportunities. But in practice and especially in public perception it always trailed behind.
The benchmarks published by OSNews suggest that, at least in the commercial space, managed code is already competitive and can beat unmanaged C code. The nice thing about the OSN article is that it's probably the first time that someone was so (stupid|brave) to violate Microsoft's licensing agreement and publish benchmarks for C# - but even Java did very well against gcc.
Unfortunately the usefulness of the benchmarks is very limited. They do not measure important things like the quality of inlining, virtual method invocation (or more important for virtual methods: how good the VM is at inlining them at runtime) and the cost for object allocation. And it ignores language-specific features that cost performance. A good example is Java's immutable String class which causes object allocations for all modifing string operations. But it still gives hope for a better future. Congratulations, managed code 

A few month ago, a german com
A few month ago, a german computer magazine(c't -> www.heise.de) had a comparison between c++, c#, java 1.4.2 and delphi, testing stuff like virtual function invocation, object allocation etc.
, c++ ran 8 times faster than before, leaving absolutly no chance to the others.
For c++ they used MS VC++ and Borland's compiler.
Their result was that c# performed the best, with java en par in most of the stuff, but c++ performed the poorest on every single test. But if you took a look at their benchmarks, you knew, why. The authors both published books about c# and delphi, butobviously had no idea about c++. Their tests weren't even standard conform. With changing a single line in the code, c++ ran 2 times faster, outperforming everything else. With changing the rest of the stuff (like call by reference in a recursive function instead of call by value) and disabling debugging mode
Unfortunatly they never had the fairness to publish a counterstatement or admit that they had done something wrong, so probably a lot of people out there(c't is a really good and imho the most professional "allround" computer magazine, so there's not only idiots out there reading it), without knowledge of c++, believe this crap, they published.