Original post by PromitQuote:
Original post by Stachel
Is it reasonable to assume that Microsoft knows C# better than anyone? So why are Microsoft's major applications not written in C#?
You sure about that? Note that nearly all of the Tablet PC APIs, as well as nearly all of the Windows Media Center programs, are in managed code.
Is Office in C#? Is the C++ compiler? Windows Media Player? Word? Excel? IE7? DirectX? Exchange? JScript? VBScript? FTP client?
Massive portions of the new APIs -- WPF (windows presentation foundation, formerly Avalon), WCF (windows communication foundation, formerly Indigo), and the rest of WinFX -- are in managed code. They're such massive managed codebases that they actually got renamed to .NET 3.0, and they're meant to form the core for new applications. WinForms will be deprecated in favor of WPF, for example. SharePoint and SQL Server use .NET heavily. Very nearly all of the Microsoft website, MSN, Live, etc are built in ASP.NET.
I don't doubt it. But "meant to form the core of new applications" with APIs has happened before: remember MFC and COM?
Besides, most of MS' really major applications are legacy codebases, some dating back to the late 80s. You don't throw that stuff out and switch over to managed code just for the hell of it; that's retarded. Most of MS' new applications, however, are built in managed code.
True, one should be careful about tossing working legacy, working codebases. I did check the link you provided (thank-you), but given all the code that Microsoft produces, those numbers seem to fall short of a wholesale commitment of core programming to C#. What's at issue here is what is "good enough." For the apps that demand the highest speed, are they being written in C#? Would you write a video codec in C#?
While I was working there, I never touched anything other than C#.
What I see in D is a language that takes C++, and compounds the mistakes made there.
How does C# get it right while D gets it wrong?