Virtual Developer Workshop: Containerized Development with Docker
Visual Basic 6 is now two versions old with yet newer versions in beta. VB 6.0 was followed by Visual Basic .NET (2002) and then Visual Basic .NET 2003. Visual Basic 2005 is now in beta and due out next year. Just as Visual Basic 3.0 and other popular past versions have faded out of mainstream existence, so is the predicted future for VB 6.0.
With VB 6.0, however, there are some arguments being made as to why it should not pass into the graveyard as quickly as some of the even older versions. But, are these valid arguments or are those comfortable with the product simply grasping at excuses to prolong the standard evolution that follows all software products and languages?
Are people really sticking with Visual Basic 6? If so, what are the reasons for sticking with an old version? Will the .NET version of Visual Basic be forced upon those who would otherwise continue forward with the old version? Is this situation any different from virtually every other product that has established itself in the market? Are gains being lost by not going to the newer .NET versions, or are gains lost by going to a new version?
Is this really an issue?
Why isn't Visual Basic 3 still around?
Are People Sticking with Visual Basic 6.0?
A large percentage of people are still using Visual Basic 6.0. There are enough people still using VB 6 that Microsoft is still looking for ways to make the transition to .NET even easier for these programmers and their applications. Many Visual Basic discussion forums, including Jupitermedia's own VBForums, continue to have high traffic in the "classic" (version 6) VB sections, and numerous articles continue to be published. While the world is being inundated with .NET articles, VB 6 is not being completely forgotten.
Within the forums, you'll find that many developers have stated that they see no reason to upgrade. In fact, many give reasons on why they don't plan to upgrade and why they believe most shouldn't upgrade. It is worth looking at a number of these reasons for sticking with VB 6. It is also worth noting how accurate the reasons are.
VB .NET Is a Different Language
One of the most common complaints is that Visual Basic .NET is not an upgrade from VB 6, but rather it is an entirely new language. This is one of the most popular issues raised when VB 6 developers were asked why they were not upgrading to .NET.
Within the forums, Ice_531 stated "Different syntax means more time to learn it. Sure, some things are still the same or similar but really .NET is a completely different language."
Merri had similar comments when he stated, "In my opinion, VB.NET isn't a sequel to the Visual Basic series: The syntax is different; it isn't of the same version line. It isn't an improved version of VB; it is a completely new language. Microsoft probably just wants to make more people use their C#."
Yet another person, BruceG, stated it succinctly, ".NET does not build on the previous versions of VB." BruceG expanded this, however, to state, "Up until .NET, VB has to some degree retained the flavor of its great-grandfather, BASIC. I would say the 'flavor' of BASIC is that it is a very high-level language with simplified syntax—you could concentrate on the problem at hand and let the computer do the work." He continued with "Saw demo, it was not easy. Have to know this-dot-that-dot-the other thing, blah, blah, blah."
Is Visual Basic .NET a new language?
This is a rough question to answer clearly. The syntax is very similar in that an if statement is still an if and a foreach statement is still a foreach. Capitalization is not required and semicolons are not needed to end commands.
Overall, the basic syntax is similar; however, most people mix language and libraries into the same bucket. This is where .NET pulls away from the Visual Basic of the past. Additionally, some basic commands and features that have been grandfathered in Visual Basic editions did go missing in .NET. This includes very common commands such as OPEN for opening basic files. Others commands were included, such as CType.
The commands that may have been lost in VB 6 are replaced in VB .NET with a robust library of routines. These routines are the .NET Framework classes that go beyond what VB 6 included. Within the .NET Framework is a number of routines within the Microsoft.VisualBasic namespace that are specifically focused at the original VB commands. With this library as a part of a project, you have access to many of the original commands. For those commands that were lost, the .NET Framework provided other more robust solutions.
The .NET Framework is full of new classes and, thus, people are correct in that they have to be learned. The benefit of learning these classes, however, is that they are the exact same classes being used by other .NET languages, including C# and managed C++. Once you learn these classes, you will find that you can work with other .NET languages much easier.
Adding commands and classes is great, but losing them doesn't generally create goodwill. In VB .NET 2003, a lot of the functionality of VB was maintained. There were editor features that were critical to the language that were lost in the first .NET versions, including 2003. In VB 2005, the biggest return will be "edit & continue," which was a critical feature for the average VB developer. The loss of "edit & continue" alone caused a number of developers to go running from VB .NET. Microsoft, however, is listening to the developer community and is working to resolve many of these issues. This can be seen in some of the other features being added to the IDE that will help to make it the easiest development tool to use.
VB .NET Is Not Good for the Hobbyist!
".NET just isn't good for a hobbyist programmer."
This comment was made by Merri as a matter of fact. Others using Visual Basic 6 have made the same comment regarding VB .NET.
One of the values of Visual Basic is that it was quick and easy to create simple applications. You could drag and drop controls in a simple IDE and quickly create applications. Additionally, it was relatively easy to get entry-level versions at a low cost. This all added up to a product that hobbyists picked up and used.
There is the perception that VB .NET isn't for the hobbyists. There is a perception that it can no longer be easy. There are a number of reasons for these perceptions.
One reason for VB .NET appearing harder to use is that the IDE seems to be more complex. This is a result of having more features. It is possible, however, to customize the IDE back to something simpler. Additionally, Microsoft is releasing an Express version of Visual Basic 2005 that cuts out a lot of the items not needed by a hobbyist developer. This will greatly simplify working with VB.
In addition to releasing the Express editions, Microsoft has also increased the number of starter kits that are available. A starter kit is a full-fledged sample application that includes all of the source code. These applications can be cusomtomized and re-used. Existing starter kits do things ranging from a complete Web site to tracking a person's time. The starter kits provide a perfect starting point for a hobbyist who is primarily interested in simply building a solution and not as worried about writing every single line of code.
Another factor that complicates VB .NET has already been mentioned. The use of "edit & continue" is a huge factor in the perception of an easy-to-use product. This single item seems to be able to make the IDE friendly and responsive. According to those working with Microsoft, this is continually one of the biggest issues raised regarding VB .NET, and it is an issue that is finally being resolved in the 2005 version. In the current version, this feature was lost.
The need to compile and use a runtime also comes up in conversations as to why VB .NET is more complicated and less of a hobbyist tool. While the older VB also required a runtime, many people neglect to mention that. The facts are that the .NET Framework is needed for a VB .NET application to run. This is a much more substantial requirement than the runtime file needed in the past. In the short term, this is an issue; however, .NET is becoming a part of the operating system. Additionally, by Microsoft's count, there are over 100 million desktops with the .NET Framework on them already.
As machines upgrade to newer versions of Windows, it will be more likely that the .NET Framework will already be on the machine. The next version of Windows (Longhorn) has the .NET Framework built in. Additionally, many of the service pack disks that have been distributed also include the .NET Framework on them. The runtime will have to be installed before your .NET application will run. Granted, you can build an installation that pulls the runtime down from the Web or include it with your application when you distribute it. This is the same situation that was faced by earlier VB developers with its runtime. Granted, the required runtime files are substantially larger; however, Microsoft has included a "bootstrapper" that makes including the runtime install with your application easy.