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
- Visual Basic .NET is a perfectly reasonable language for writing
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.
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.