Nick points to a thread going on in the blogosphere at the moment about some recent comments that James Gosling made about Microsofts support for the C++ language inside the managed runtime and its ability to execute unverifiable code.

I know that I am no saint when it comes to making cheap shots at technologies, but I tend to distribute criticism fairly evenly and having worked in the trenches with both .NET and Java I think I am entitled.

In this case I think that Gosling probably needs to pull his head in a bit, and its not just a discussion about the trade offs of security when going after screaming speed, its actually a discussion about existing code investments.

There is a lot of C/C++ code out there that companies want to take with them. An implementation of C++ which bridges managed and unmanaged code is not just a good idea, its essential, especially in instances where there is a need to limit the number of managed/unmanaged transitions.

One performance note: I firmly believe that in the long run performance between a natively compiled C/C++ program and a program running on the CLR will be nill – in fact, the likely hood of writing a well performing managed app vs. unmanaged app is already pretty good.