“whose entire professional career has been in C#”
Doesn’t c# run slower? Also I’d say that anytime you use new or malloc, you’d better check for a null result.
Not necessarily. The C# Just-in-time translation is remarkably efficient.
Yes, I have done timing tests on some complex algorithms that were implemented in both C# and C++. They ran at approximately the same rate.
I would say one had better check for a null pointer anytime a class pointer gets passed along to another method. Then provide some reasonable error message and a suitable fallback that does not cause a crash.
That is pretty hard to do and even harder to test and see if it works. That is why it is seldom done.