Has Microsoft flipped the Bozo bit on .NET?
Posted in Blogs on blogs, The Art of Programming on March 18th, 2006My colleague, Jeff Atwood also writes about this at his excellent Coding Horror.
No, Microsoft has not.
I have recent experience with software development in Vista (literally IN Vista). I work in a .NET shop but we did not build our Vista app in .NET. We used good old unmanaged Win32/C++.
Richard Grimes is a frequent contributor to many professional software journals and his Wrox books Beginning ATL COM Programming and Professional DCOM Programming saved my ass and made me look smart when I was building a DCOM based system working over satellite networking for Ford Motor Company in the late 90’s.
Richard has some great posts on .NET, Vista and specifically .NET and Vista.
He shows, and laments, that there is virtually no .NET beyond the .NET runtime in Vista. Further, he tracks that the amount of managed code within the .NET framework itself has measurably gone down with each release.
From this he concludes that Microsoft has lost confidence in .NET.
Grimes has missed the point. In building Vista, virtually every RECENT decision (over the last 18 months) has been driven by Microsoft ruthlessly pursuing stability and security. After umpteen intense code reviews this priority is now burned on my butt. At the same time Microsoft is also insisting on broad compatibility with existing applications and systems.
As Grimes demonstrates, the Microsoft OS (Vista) and application code base (Office, etc.) is almost entirely Win32/C/C++. What Grimes neglects to mention is that the Microsoft code base is also incredibly mature in terms of contained bug fixes and work-arounds.
Porting functionality to .NET would have directly increased security. However, porting any major function or system to .NET, while also faithfully replicating all the complicated legacy details contained is very expensive and error prone.
Microsoft does not have infinite resources and they cannot push hard on everything at the same time. Pursuing increased security and stability (in C/C++ those are directly and tightly coupled objectives) had the effect of reducing the goal of “more .NET” from a MUST into a “nice to have.”
The goal of a solid platform is worthy. Improving the security of the Windows platform is also a good idea. Looking at the history of Vista there is a clear pattern of tossing any new feature (WinFS, Avalon, …) if it cannot be guaranteed rock solid.
It’s gutsy that Microsoft has been willing to forgo attractive customer-facing features to pursue greater stability (which is only visible by a lack of instability…) and security (ditto).
It’s wimpy that they have not explained this well to the developer community.
The real issue Microsoft has to tackle is getting their marketing rhetoric in line with reality.
I do not entirely agree with Grimes but he represents a very important outside opinion that many eminent software developers share.
If Microsoft does not address the concerns of people like Grimes or the community he represents Microsoft could lose the “mindshare” race in the long run.