When They Rip It from My Cold, Dead Fingers
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.
Visual Basic .NET Programs Are Huge!
One of the other perceptions with VB .NET is that the resulting programs (EXEs) are huge. Steven made the comment, "there seems to be a lot more overhead when I toyed around with it on a friend's computer and just created a simple hello world app the dern thing was like 300 KBs!!!"
I have found that this is simply not the case. With VB .NET, much of the functionality is within the .NET Framework. All of the Framework functionality is provided in the runtime. As such, this functionality is not needed in the VB .NET file you create. As a quick example, and to test out Steven's comment, I wrote my version of a "hello world" test. It is a small program that copies text from a textbox into a label. The text is simply appended onto the existing in text in the label. The application has three buttons; one to clear the controls, one to do the append, and one to exit the program. Figure 1 shows the form for this application, which took less than five minutes to create, counting the time for the IDE to launch.
Figure 1: A simple VB .NET Application
This application, or one similar to it, is what I generally create the first time I open up a new tool or work with a new programming language. It is a little more than simply typing out "Hello World" on a form, but it provides the ability to see how easy it is to create a form, add controls and customization, and work with basic text.
I'd speculate that this small application is much more robust than the Hello World application mentioned by Steven. The resulting executable program that was created was 15 Kb. This was the version created with debug information. A release version should be even smaller. This is a far cry smaller than 300 Kb! In general, you will find that if your application relies upon Framework classes, its size will not be outrageous.
Visual Basic .NET Costs Too Much!
Another reason people believe that VB .NET is not for them is the cost. This issue also stands on its own.
"Strictly because of the cost." Was the reason dglienna gave when asked why he hadn't upgraded.
Szlamany echoed cost as well; however, not regarding the product itself; "Lots of dollars to develop - lots of time - switching to something new costs R&D dollars that no one wants to give us..." He goes on to say, "Cost of MS product has nothing to do with it - we have MSDN license to just about everything - bought action-pack two years ago. MS send me CD's every month - we don't even have time to catalog them... It's all about internal cost to make the transition. And getting customers to want to do it as well."
mudfish also noted the secondary cost, "I do not think the people I work for want the expense of the training to shift us to .NET now! The longer they wait, the more it will cost in man-hours!"
The cost of going to .NET can be summed up into two areas. The first is the cost of the product and the second is the cost to train in order to understand and use the product.
Visual Basic .NET is free. More specifically, the compiler for VB .NET is a part of the .NET Framework, which is freely available. The development environment and all the tools that make VB visual are what cost. Whereas there are third-party tools that can be used to create VB applications, the Microsoft product is the primary one that people want. There are trial versions that last from 60 to 120 days that can be obtained in books and other places. Additionally, there is a standard version that can be obtained for under $100. There are a variety of other versions as well. Most cost about the same as the original prices of their VB 6 counterparts.
With Visual Studio 2005, you can expect the inclusion of Visual Basic in as a part of the Standard Edition. Additionally, as mentioned earlier, Microsoft has announced, and has in beta, a Visual Basic 2005 Express Edition that has a simplified interface. While Microsoft hasn't committed to pricing on the Express versions, they have said that it will be competitive. Since this is a SKU below the Standard edition, it could be assumed that it will be substantially lower in price than that version. Right now, you can get the beta of Visual Basic 2005 Express freely at http://lab.msdn.microsoft.com/express/.
While options for getting VB .NET cheaper are being announced, the other issue of cost centers on training. Learning takes time, and time is often considered a cost.
There are no great answers for getting around the cost of training; however, there are some good ones. The number of Web casts and chats being done by Microsoft and other companies has increased dramatically in the past year. At the time this article is being written, Microsoft was even advertising on Developer.com that if you attended three free Web casts, they would give you a copy of the standard edition of VB .NET! Microsoft is also distributing a resource kit and has provided numerous documents on upgrading. The Express Edition includes starter kits and "Getting Started" content. Add to this the targetted help functions, the smart tags, and the other features and the result should be that less training is needed to get up and coding with VB .NET.
Numerous sites have popped up with articles and other information to help you get started as well. Sites such as CodeGuru and Developer.com include sections for VB .NET. You can also find numerous discussion forums where questions can be asked.
Although articles, Web casts, and discussions are not classroom training, they do provide free information to help you learn to use VB .NET. The cost of time is still there; however, it can already be seen that people with .NET experience are becoming more valuable than those without.
Page 2 of 4