When They Rip It from My Cold, Dead Fingers
Visual Basic 6 Works and Can Do It All!
One of the most interesting and simple comments made when asking people why they are sticking with VB 6 came from Bruce Fox. Bruce simply stated, "Why? VB6 does everything I need."
Another comment was made by Pasvorto, "I don't see where I could provide any more functionality to my company. So, if there is no return, why pay the price to change?"
Initially, you will be less productive in a new environment; however, once you become familiar with the environment (such as the .NET Framework) and with the tools (such as the Visual Basic .NET IDE), you will quickly realize that there are a lot of features that will make you even more productive than you were before. The short time loss of productivity should be more than made up for in the long run. This becomes even truer within VB .NET 2005, where things such as Intellisense get supplemented with Intellitask and where features such as the auto-correction are made available. For Web development, the addition of features such as Master pages help to focus your coding into the areas that are most important. Wizards and options help to eliminate many of the redundant tasks that you do.
It is worth mentioning one big difference between VB .NET and VB 6. VB .NET is an OOP tool. It was created to do Object-Oriented Programming. VB 6 and earlier were more focused on being RAD tools. The focus was on rapid development. This focus on the RAD came at the cost of some of the features that more advanced languages have. With VB .NET, the doors are open to tap into the same feature set that the advance-level languages have. This doesn't mean that the RAD has to be gone. In fact, Microsoft is focused on making VB .NET even more appropriate for rapid application development while maintaining its ability to tap into all the features of advanced languages and OOP.
Real Reasons to Go Visual Basic .NET
I often get calls from recruiters and companies looking for developers. I am asked for more recommendations for VB .NET developers than for VB developers. In fact, when asked for people using Microsoft developer technologies, it has become very rare to be asked for a person having no .NET development experience.
What is the point of stating this? Simply, if you are going to be looking for a new VB job in the future, chances are that your VB 6 credentials are not going to be enough to get you the job. Chances are, you are going to have to have .NET experience as well.
Where is DBase today? How many Paradox applications are being built? Where are all the requests for PowerBuilder developers? Have you met many Clipper developers lately? If you look really hard, you will find that there are still some systems out there using these languages and tools, but for the most part, they are yesterday's technologies. They were all great products. They were all the best in their class at one point. Those who knew the tools would tell you that they did everything that was needed at the time. Those who knew the tool are most likely programming in a different language or tool today.
If you are doing professional-level development with VB, chances are that within a few more years, there will be little new development for you to do if you don't move to .NET or something else. Visual Basic 6 is an older version. Microsoft has a support plan in place, but with time that support will cost and with even more time it will go away.
Although VB 6 does do a lot, VB .NET is being positioned to be able to do more. VB .NET includes access to the complete .NET Framework. This is thousands of classes and methods for getting things done. Additionally, VB .NET can tap into and use any libraries or classes created with any other .NET language. This means that VB .NET programmers have access to all the routines created by C# and managed C++ developers. While access to these was available before, it was not as easy.
What Does Microsoft Say?
Microsoft obviously wants everyone to upgrade for a variety of reasons. I feel comfortable in saying that they also understand that you are not going to upgrade simply because they would like you to.
.NET offers a lot of promise and VB .NET does as well. As I mentioned previously, the Visual Basic team at Microsoft is working to make sure VB 2005 has many of the features that VB 6 developers wanted. In many ways, those promises are starting to materialize.
Microsoft is not simply abandoning VB for C#; however, they did make the hard decision in regard to backward compatibility. S. Somaseger, corporate vice president of the Developer Division at Microsoft Corporation, states it clearly in his blog at http://blogs.msdn.com/somasegar/archive/2004/08/01/204540.aspx (referring to the Visual Basic language):
"We're 120% committed to the language and the product not just today but for a long, long, long time to come, as we have been in the last decade now. I know that when we moved from VB6 to VB.NET, we broke compatibility and that is a sore point with some of our developer customers. It was a huge decision that we did not take lightly at that time. The trade-off clearly was making a leapfrog jump in innovation as we moved to the .NET platform versus ensuring full compatibility."
In a conversation with Craig Symonds, General Manager of the Visual Studio Tools, he stated, "Forrester Research recently reported that 56% of enterprises are using the .NET Framework for their development (see http://www.microsoft.com/forrester). Clearly, we've seen a significant amount of momentum since we launched three years ago." Craig went on to say," A key goal for 2005 is to add or fix key adoption blockers for those folks that haven't made the move to .NET as of yet."
Knowing that Microsoft is interested in addressing the blocking factors for migrating to VB .NET, it is worth looking to see what is coming next. Visual Basic 2005 .NET is in beta. Robert Green, Program Manager for Visual Basic at Microsoft, stated the following when asked what the best features of VB 2005 would be:
"Drag and drop data binding to local data, server-based data, Web services, and business objects. Code snippets. My, which is a speed dial into the Framework, (eg My.Computer.Network.IsAvailable). Language features such as generics and operator overloading. Strongly typed resources and settings, (eg Form1.BackgroundImage = My.Resources.CoolBackground, where CoolBackground is actually coolbackground.jpg). Edit and continue. Auto-correction, where the background compiler detects errors in your code and suggests ways to fix the error, and then automatically makes the correction. Those are some of my favorites."
Robert points out a number of features that will make VB .NET go beyond the RAD tool it was in version 6.
In the most recent conversation I had with Craig Symonds, he echoed many of the features that Robert mentioned. Additionally, Craig stated that Microsoft is definitely focused on taking steps to making it easier for the VB 6 developer to learn VB 2005 .NET quicker. He stated that a ton of time is being spent on VB 2005 with the focus on making things simpler. This simplification should help to make VB the RAD tool it has been in the past. Craig stated that this focus for simplifying things would continue into the future for VB.
Craig also mentioned that there is a perception that VB .NET requires the "ripping and replacing" of VB 6 applications. He stated that this was one of the perceptions along with many of the items mentioned earlier in this article that are causing people to avoid .NET. There is also the perception that C# has taken over VB. Although C# is gaining a ton of momentum, VB is still very high in usage. Additionally, VB .NET does not require the re-writing of older VB applications. The old and the new can work together.
Support for Craig's comments about C# versus VB can be found in the TIOBE numbers published on Developer.com. The numbers for Visual Basic are 500% greater than for C#. Even taking into account the additional items tracked in the Visual Basic category, it should still land substantially higher on the chart. The TIOBE rankings show current interest in a topic. (See http://www.developer.com/java/other/article.php/3417831)
Page 3 of 4