Readers Weigh in: VB Is Least Among Equals

Your comments on whether Microsoft really does treat VB like a second-class language.

VB Is Least Among Equals
I agree with Patrick Meader's statements about VB being the least among equals ("Least Among Equals," April 2008). I've taken surveys from Microsoft, and I often find myself complaining in my comments that the sample code for VB is my biggest disappointment with new Microsoft technologies. I find myself relying on code samples that I find on the Internet to solve most of the problems that I encounter while programming. I've been using some form of BASIC since my first computer, a TI99/4A (yes that was a real computer).

I've used several versions of VB.NET now, and my sense is that these versions were produced only to keep VB developers from migrating en masse to other languages such as Java, if Microsoft were to drop VB. Microsoft is slowly removing support from the tool, so it can die a more natural death from lack of use.

I had great interest in the XNA product. I had hoped to use it to produce some free games that I could give out. But the lack of support from Microsoft for developing against XNA with VB.NET has prompted me to back away from this otherwise excellent product.

The company that I work for has several programs written in VB6, so we decided to try the .NET version of VB when it was released. What we discovered was this: A program that had originally taken 300 hours to produce took almost 900 hours to convert. We stopped all development in VB.NET, and we waited until Microsoft released VB.NET 2005 before continuing to produce any new programs with VB.NET. These types of experiences probably hurt the perception of VB, together with the fact that C# programmers typically earn more than their VB.NET counterparts. As the saying goes: "Follow the money."

Owen Burch
received by e-mail

I've been a professional developer for more than 14 years, and for the majority of that time, I've used VB, dating back to version 3. Back in VB3 days, C++ was the hip language, and VB was this "Mickey Mouse" tool that wasn't intended for real programmers.

Unfortunately, it appears this attitude has continued over to the .NET world and the C# language. For example, some of my developer colleagues view VB.NET as a tool for beginners, and not something you'd use for serious apps. When I challenge them to explain what C# can do that VB.NET cannot, they are invariably at a loss for examples. Most give the excuse that they prefer the concise syntax of C#, or that C# is the language preferred by Microsoft. I do think that the "basic" stigma of VB puts people off; C# sounds cooler.

But let's face it: If you can program esoteric code that is unreadable to anyone else, you are to an extent guaranteeing that you will be the one to maintain it. It's Job Security 101. Nowadays I use VB for my Access 2007 applications and Active Directory scripting, and I use C# for everything else. This isn't by choice, but dictated by what our SharePoint Webpart suppliers use. At home, I work with VB 2008.

I hope I don't ever see the day when Microsoft officially drops VB altogether, but it does seem likely.

Dave Christoffersen
received by e-mail

Anyone who's been programming in BASIC as long as I have -- I started with GWBASIC/BASICA, then QuickBASIC, and worked my way on up from there -- will absolutely testify that VB has never been taken seriously.

VB 1.0 was intended to be a prototype environment. Once you worked out the kinks, you were expected to recode the app in C. But when Microsoft discovered that people were happy using a VB version of their programs, it started improving the language. VB has always been my favorite language because it gets the job done. The fact that VB.NET can do anything that C# can do doesn't seem to matter (frequently the only difference between comparable language statements is the semi-colon). VB has forever been marked the "beginner's" language or the "scripting" language, and that's that.

I feel Microsoft is working just as hard as the general population to keep VB down. If it provides only one set of sample code, that code is going to be in C#. Period. Just look at the download page for the free Express versions of the language. It refers to VB as a beginner's language, and the same page makes it clear that C# is the language for professionals. I think Microsoft would've been better off letting the Visual BASIC name die with VB6; perhaps it should have called VB.NET something like B# instead.

Troy Truax
received by e-mail

Having been an avid VB programmer since VB6 was released, I think all VB programmers have been looked at as the red-headed step-children, regardless of what version of the language they're using. In the VB6 timeframe, you weren't a "real" programmer if you didn't program in C++. Now, it's even worse; the list of "real" languages also includes C# and Java, but not VB.NET. Personally, I've given up hope that VB.NET will ever be looked upon as a legitimate language or that VB programmers will ever be looked upon as anything more than just "script kiddies."

Jim Youngman
Cocoa, Fla.

Patrick Meader, stop your whining! VB isn't even close to the bottom rung. Look at C++/CLI! It doesn't even have the same Visual Studio APIs as the rest of the .NET languages. I had to open a Microsoft Premier Contract just to get Microsoft to tell me how to programmatically create a VS Project because there was essentially no documentation. And within the regular .NET libraries, I rarely see C++/CLI examples, unless C# and VB examples are there first.

In all seriousness, we've never forced a particular language on our developers, but I have to admit that most of them are now gravitating toward C#. Sure the old C++ code is going to be converted to C++/CLI, and the old VB code might be converted to VB.NET. But C# seems to be the language of choice for most new development. Which begs the question: Is this really a problem?

Mark Strelau
received by e-mail

On the other side of the coin, VB is the only language supported for SQL Server Integration Services (SSIS) programming.

Tom Dacon
received by e-mail

I do think VB is treated as a second-class citizen compared with C#. If Microsoft intends to phase out VB.NET, it should just say so.

Julie Gordon
received by e-mail

Software Advancements Keeping Pace
As I write this note in response to Patrick Meader's March editorial and his question about why we haven't seen the level of improvement in computer software that we have seen in hardware ("Software Advancements Fail to Keep Pace" March 2008), I realize I am using Word 97 on my laptop and will barely notice the difference when I return to Word 2002 on my desktop.

I think the big difference between hardware and software is that the former is bound by the laws of physics, while the "boundless" nature of software requires a level of self discipline that is difficult to institute. While hardware designers are working with zeroes and ones and can focus on improving data transmission rates and overlapping processes, software designers keep creating whole new approaches for solving age-old problems.

It seems that much of the effort over that past few years has been to make software even more flexible, rather than to introduce discipline to the process. The ongoing effort to arrange functionality into an ever more abstract hierarchy of functions creates an infinite number of answers to the same basic problems.

It's human nature (and more "fun") to believe we can develop a better solution than just accepting an existing solution provided by someone else. The result is that there are many tools addressing the same issues, ranging from various programming languages to whole frameworks. In the case of software development, the net effect of the proliferation of various techniques has resulted in numerous proprietary approaches that require one author's approach, rather than a basic framework that encourages collaboration.

The goal of the software professional should be to give the average user the tools they need to harness the power of automation. As "computer professionals," we must always work to avoid becoming so enamored by the solution that we forget the goal of our profession. Yes, we need to provide solutions, but we must also make sure computers are easily managed by the people who want to use them. Instead of continually inventing new solutions, we must make a better effort to reuse existing solutions and avoid creating too many tools that do the same thing.

Bill Bittner
received by e-mail


Letters to Visual Studio Magazine are welcome. Letters must include your name, address, and daytime phone number to be considered for publication. Letters might be edited for form, fit, and style. Please send them to Letters to the Editor, c/o Visual Studio Magazine, 2600 El Camino Real, Suite 300, San Mateo, CA 94403; fax them to 650-570-6307; or e-mail them to [email protected]. Note that the views expressed in the letters section are the opinions of the letters' authors, and do not necessarily reflect the opinions of Visual Studio Magazine or those of 1105 Media.

About the Author

This story was written or compiled based on feedback from the readers of Visual Studio Magazine.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube