![]()
March 18, 2005 • Vol.27 Issue 11
Page(s) 20 in print issue
With apologies to the other William, this is the question many Visual Basic 6.0 developers are asking as they migrate to .NET. Should they transition to Visual Basic .NET or retool and switch to C#? It's clear that those of us that like, nay love, Visual Basic are troubled as we see more desertions from our ranks.
Those loyal to Visual Basic are assailed by many who would have them switch to some other language like (dare I say it) C#. There are many who whisper gently but persistently in their ears that Visual Basic is dead; for sissies, beginners, and hobbyists; not for "real" programs. Some even say, "Microsoft doesn't use it for its programs, why should we?" Some of these whispers come from people everyone should trust—people on podiums who know better and people acting as trusted consultants. So these Visual Basic developers—even those that have already transitioned from Visual Basic 6.0 to Visual Basic .NET—are confused.
The Rumors Of Visual Basic's Death Are Premature
I don't think C# is evil. I do think, however, that it's the wrong choice for Visual Basic developers transitioning to .NET. We need to keep in mind that Visual Basic is the most widely used programming language on the planet with 4 million to 9 million followers, depending on how they are counted. If you as a consultant, pundit, or writer offend or insult the intelligence of these people, you aren't doing yourself or your business any favors. The Visual Basic bashers that would have you believe that you can't create "real" applications with Visual Basic are just misinformed or have another agenda.
No, Microsoft does not use Visual Basic for the bulk of its work on systems software; it uses C++ and C. Why not Visual Basic? Perhaps it's because those developers (many with a decade or more of experience) have to work with millions upon millions of lines of code written in C and C++. Some found it easier to transition to C# and Managed C++.
Why are so many examples written in C# and not Visual Basic .NET? For the same reason: Those developers writing the code, white papers, and presentations are C or C# developers. That's what they know how to do. They either don't know Visual Basic well enough to write a good example, or they were not given enough time to do both. And Bill (the other one) didn't make them. But that's the best reason of all to choose one CLR language over another— your own personal skills. In the end, they both compile down to the same IL—and wait at the same speed.
Visual Basic: A "Second-Class" Citizen?
We've also heard that when developers are asked in a group of their peers if they use Visual Basic, some are hesitant to admit it, but when asked individually, they freely admit to having Visual Basic as one of their skills. It is almost like Visual Basic experience is one of those "don't ask, don't tell" issues. That's ridiculous. Just because a language is easier to use or less disciplined does not mean it's not more than suitable for a serious job.
Yes, less disciplined developers writing less structured code is an issue for a serious job, regardless of the language. While Visual Basic 6.0 has severe limitations in some areas, Visual Basic .NET does not. It can be just as structured and OO as C#. Yes, there are some things that it can't do when compared to C#, things that only 2% of the developer community would ever miss.
Visual Basic 6.0 developers will find no features that Visual Basic .NET does not support but C# does. Sure, using drag and drop can be a productive way to write code—the same drag-and-drop features are in C#. (Actually, these are features of Visual Studio that work equally well with C# and Visual Basic .NET.) That said, we know that many developers (myself included) are hesitant to use drag and drop and the wizards to generate much code. We simply want the flexibility to do our own thing. Visual Basic .NET gives you that flexibility—just like C#.
Should You Transition To .NET?
Another issue we've discussed is whether to transition at all. Is this trip really necessary? Sure, if it's not broken, don't fix it. But as the world gets more dangerous, it becomes more and more of a burden to protect ourselves and our customer's information from those who would despoil it. Our systems have been descended upon by a plethora of pirates, plunderers, panderers, privateers, and those who would steal our very identities. We need better tools to protect ourselves. A well-written .NET application written in Visual Basic .NET (or C#) can be that shield. It's tough to fight the bad guys with muskets when the people coming over the wall are using laser-sighted M16s.
If you want to follow along or participate in this discussion, be sure to check out my new blog at www.betav.com/blog/billva.

Leave a comment