Okay, rant time. This one’s pretty minor in the scheme of things but I feel the need to vent.
One of my pet peeves is when people say something is “written in Visual Basic” or when something is referred to as being “all in Visual Basic” but then doesn’t go beyond that definition. Actually what really irks me is when people look at me like a space alien when I ask “Visual Basic what?”
So let’s clarify, shall we? Microsoft, as we’ve established, decided to kick start Windows development and go into Rapid Application Development with its Visual Basic programming tool/language. Visual Basic 1.0 was essentially a frontend for designing applications with a scripting language in the background. The language was based off of BASIC, but didn’t adhere to it strictly, mainly because BASIC had no standards bodies behind it (so you can’t say you’re ANSI compliant, like C++ compilers can).
Visual Basic was aimed at non-programmers and was fairly limited. Over the years it had six major version releases, with 1999’s Visual Basic 6.0 being the last. Each release added more power to the product, mostly through undocumented functionality (which had the interesting side effect of only the long-term programmers having access to them or the desire to use it). VB6 still retained the “only do what we thought of” mentality – it limited the users in ways that “to the metal” languages like C++ don’t. I’ve heard it referred to as the “glass cieling” of VB6 – at some point you’ll want it to do something that it simply cannot do. But in so far as being able to achieve a lot in a small amount of time, it couldn’t be beat.
But the language behind it was always kinda kludgey, and each release just grafted more onto it. What happened was – over time millions of people who weren’t considered programmers prior to VB’s release were now being considered programmers and these people demanded more from the product. Essentially Microsoft had created a beast – things they wanted to do with VB they couldn’t do without alienating their client base, and a number of things about VB never really worked, but the VB programmers worked around them anyway.
But then Microsoft hauled off and released Visual Basic .NET in 2002, as part of their .NET initiative. VB.NET changed a lot of things about the language, the environment, and the positioning of VB. Functions now had return types, VB could now power web pages, and everything written in VB to that point had to be redone. Additionally, while VB6 programmers were more or less standalone beasts, VB.NET programs ran in the .NET CLR meaning that the .NET Framework has to be loaded on the machine. Consequently, VB6 and VB.NET are considered two separate things, and a number of people have loudly decided that they will never move away from VB6 to VB.NET. Indeed, VB.NET is aimed at more advanced programmers and a number of VB6 programmers just don’t want to go there.
The rumor is that Microsoft secretly hates VB and would nothing more than to kill it off entirely – they’re rumored to be doing the majority of their future development in C#, including a complete rewrite of Office (though they have killed off previous efforts to do just that). Additionally, there’s word that with C# 2.0 (part of .NET 2.0), C# will get functionality that VB.NET will not – the two will fork off from each other. Why they would do that (since the MSIL would have to be updated and so therefore VB.NET could be upgraded as well) is puzzling (though for a C#-preferring language snob like myself it’s precious). The reason Microsoft came up with VB.NET to begin with is the fact that there’s some 3 million plus VB6 coders out there and they needed them to make their .NET push happen at all.
So that’s VB and the three faces of it. I don’t expect merely writing this to fix anything (since at least a few people who gave me the confused puppy look also happened to be seasoned programmers), but now at least anyone reading this knows another thing to be nitpicky over.