AMD/ATI benutzen doch .net für das Control Panel und Overdrive?
Bei enigen Arten von Programmen macht .net oder auch Java vom Prinzip her keinen Sinn, nämlich bei Systemprogramme (Betriebssystem, Treiber, andere hardwarenahe Software),
bei Programmen die großen Nutzen aus den CPU-Erweiterungen wie z.B. SSE ziehen (Encoder und Filter für Video/Audio/Bilder). Da ist der Unterschied zwischen generiertem Code und handgeschriebenem Assemblercode noch riesig. Außerdem ist man stark an das Framework gebunden, d.h. was das Framework nicht hergibt, geht auch nicht.
Da die Frameworks und im speziellen deren Bibliotheken mittlerweile sehr Umfangreich sind, reichen sie aber für viele Probleme bereits aus. Sowohl .net, als auch Java sind eher dafür gedacht die Entwicklungszeit und die Fehlerrate zu reduzieren. Allerdings geht das auch auf Kosten der Performance, denn solange der Code korrekt ist, sind viele dieser zusätzlich Überprüfungen überflüssig.
Der Vorteil von .net gegenüber Java ist die wesentlich bessere Integration in Windows. Der große Nachteil dagegen ist die mangelhafte Unterstützung anderer Plattformen. Mono ist ganz ok, aber ich denke nicht, dass irgendeine Firma zurzeit Mono als Plattform benutzen würde.