Jak tu už padlo, opensource komunitě je ze všech zmíněných společností jedině Microsoft silně nepřátelský. A očekávám-li pro Linux komunitu od někoho problémy, tak v prvé řadě (spíš by bylo přesnější) výhradně od Microsoftu.
Samozřejmě, že umíme unmanaged C#. Ale také umíme počítat. Pokud je velký projekt v C++, přepisuje (zvláště v GUI části) do C# a ukazuje se, kde má C# slabiny, pak je logické to nechat funkční a odladěné v C++, než to přepisovat do unmanaged C# a doufat, že to bude rychlostně podobné C++.
.NET aplikace padají úplně stejně jako C/C++. Zhruba 90% pádu C aplikací je výjimka ACCESS_VIOLATION (typicky při dereferenci vadného ukazatele), u C++ je to o něco méně, protože tak 20% zabírají pády na Pure virtual function call. Jde o můj odhad z aplikací, které používám.
Ale hlavně – aplikace jde v takovém případě komplet na držku – prostě okamžitě končí. Co se děje u neodchycené výjimky u C#? Úplně to samé, aplikace jde na držku, okamžitě končí. Akorát ten chybový dialog je jiný, standardně obsahuje stacktrace. Je-li programátor prase, je opravdu úplně jedno, co za prostředí použije, protože neodchycená výjimka prostě vede k ukončení aplikace vždy. Rozdíl pro BFU je menší než malý. Aplikace se okamžitě nekorektně ukončila, chybové hlášce stejně nerozumí a stacktrace je mu k ničemu.