Grimes on .NET (from: Tim Anderson)
http://www.itwriting.com/blog/?postid=135 | Comments
Here’s a hot potato. Long-time .NET author and expert Richard Grimes is giving up on the platform. He says the Framework is too big, too badly designed, and really just another Win32 wrapper. He also takes a lot of time to say that VB.NET is a pointless language (Grimes as I understand it is primarily a C++ developer). Finally, he suggests that Microsoft itself has been slow to adopt .NET and will never use it at the heart of Windows or its core applications.
Is Grimes right? He’s written a rant, but not an ill-informed one. Grimes knows more than most about the inner workings of the Framework. There’s at least a grain of truth in most of his criticisms. On the other hand, he does go over the top in his article. “Case insensitivity is juvenile,” he says. That’s a typical C++ vs Visual Basic debating point; it doesn’t belong in a serious assessment of the merits of .NET.
My take is that .NET is a superb platform for business applications and web applications. I also think VB.NET is a vast improvement on VB 6, but that’s by-the-by. However .NET is weaker in other scenarios. Native code still has advantages when you need the broadest reach or best performance. Yes, Win32 lurks underneath; and parts of the framework could be better. In a comment to a rebuttal by Visual C# Product Manager Dan Fernandez, Grimes singles out the EventLog as an example. I’d not stop there; I’d say the whole of System.Windows.Forms is substandard and too closely tied to Win32.
Important points; but to me they don’t remove the biggest benefit of .NET which is developer productivity. I also found myself thinking “but what about Mono?” as I read. Mono is .NET without Win32; it runs on Linux and on the Mac. The team has struggled with Windows-ish issues at times, but Mono works; it proves that .NET can live outside the Windows and Microsoft world.
What’s curious is that I mostly agree with Grimes when he says, “The framework … is intended for users to develop applications, but not for Microsoft to create operating systems”. However I don’t see that as a damning criticism. Very few developers create operating systems. Most developers create applications. I can’t see the logic of dismissing the .NET platform on that basis.