Today, I was asked for performance data comparing between C++ and C#. The reason they ask is the same one I’ve seen people ask for before: they’re trying to convince someone up their management chain that moving to managed code is the right thing to do. The problem is that this has never been an easy question to answer, at least, not in a way that gives the person asking exactly what they were looking for: hard data proving the move is the right thing to do.
The truth is that over time, I’ve seen many folks ask this question, end up going with managed code, and never really come back and mentioning anything about performance problems but instead talking about their productivity gains as a result of the move. This is always good to see but it’s not the kind of thing that helps the folks who haven’t made the jump and won’t until their management is convinced it’s the right thing to do.
Of course, there are definitely areas where you want to stay in the world of native code. The next killer 3d game is highly unlikely to be written in managed code (though it probably wouldn’t be all that bad) but I bet a lot of the tools used to make it could all be managed apps. I’m seeing less and less projects that aren’t suited for the managed world and definitely less than I originally thought I was going to see back when .NET was just getting started.
Is this something you have encountered over time? How would you help someone asking this question? I’d love to hear your thoughts…