On the demise of .NET, and other poppycock

In the last week or two I've read a few opinion pieces out on the Internet claiming variously that .NET is a failed effort on the part of Microsoft to demonstrate that the could build a framework too, or that VB .NET is a toy language for toy programmers, or that all the cool kids are moving on to other environments for their development, or...well, you get the idea. Contrary to my usual practice, I'm not going to link to any of these pieces, because I hate to fill my readers' heads with nonsense (unless, of course, it is my own nonsense).

Let me make my own position clear right up front:

  • .NET is here to stay
  • .NET provides a solidly productive framework for building Windows applications
  • Visual Basic .NET is a perfectly reasonable language for writing applications

It should be obvious to anyone who's been in the software business for any reasonable length of time that .NET is here to stay. Once a language or framework or system has gotten entrenched into any sizeable project, it develops an almost unbreakable inertia. Consider the number of applications out there that are still running perfectly well in Fortran or COBOL or MUMPS or...well, name the "obsolete" language of your choice. With several years of serious development effort based on it, many corporations are now committed to .NET. You won't see that effort being thrown away any time soon.

That leads me to two other points. First, the fact that .NET isn't perfect doesn't mean that it's some marketing-driven conspiracy slapped together by Microsoft as a reaction to the success of Java. No piece of software is ever perfect, but that doesn't keep us from getting our work done; we're developers (insert "Tim the Tool Man" grunting noises here). I've no patience for the purists who claim that the warts of the .NET Framework mean we should retreat to C++ or LISP or whatever perfect Platonic programming language the writer likes for all development, despite the fact that thousands of developers do perfectly well at solving real-world problems with less-than-perfect languages.

That brings me to my second point: some folks apparently think Microsoft should have embarked on a crash project to rewrite Office and Windows using .NET. These people are apparently living in some world far, far removed from the real world of existing software. Throwing away a code base of millions of lines of working code to rewrite it from scratch is insane. Netscape tried that. We haven't heard a lot of success stories from them lately. Microsoft is moving forward, adding .NET code incrementally where it makes sense (SQL Server 2005, for example, is incorporating the .NET CLR) while still improving existing code using existing languages).

Finally, on the topic of VB .NET: Visual Basic programmers have been enjoying the stigma of being incompetent dopes who wouldn't know a pointer from a setter for over a decade now, and that will never change. Nothing I can say here will change that. So I'll just smile politely and mention that I know plenty of wildly successful VB and VB .NET developers who have written plenty of applications that get used every day. If your development team is working in VB .NET and they're meeting your needs, then there's no reason at all to drop everything and retrain in C# or C++. Just smile politely yourself and remind management that it all compiles to MSIL in the end anyhow.

About the Author

Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.