Where is Visual Basic 7?, Page 2
Personal Perspectives on Visual Basic 6
I liked VB6 well enough. However, I am a bit of a linguist. Because I started programming before VB1 showed up I had to learn other languages like BASIC, Turbo Pascal, C, C++, COBOL, Clipper, Databus, and FoxPro. I also tinkered with Modula, QBASIC, Smalltalk, GW-Basic, ObjectRexx, and Perl. Having programmed professionally with all of these languages gave me some perspective on what is and isn't a good language. These perspectives are my own.
C is a great language. Perhaps it is one of the founding languages of modern computing as much as any. Unfortunately, C is also weakly typed and based on structured programming. It is impractical for modern computing for this reason. C++ is probably my favorite language as languages go, but I have seen tons of projects canceled because C++ is a hard language to use well and is prone to introducing big bugs if used poorly. Plus, the GUI tools for C++ have always been a bit esoteric and themselves hard to use. (Anyone remember using the Zinc GUI libraries for DOS?) Turbo Pascal evolved into Object Pascal and then Delphi from Borland, and Microsoft had QuickPascal for a while too. For six of the last seven years Borland's Delphi was the technologically superior language for Windows programming. Technologically there was no real competition, yet Borland was unable to convince a majority of the development community that this was so. Where was Visual Basic 1 through 6 during this period? Somewhere in between.
It was easier to build Windows applications with VB6 than it was with C++ but not as easy as it was with Delphi, and both Delphi and C++ offered better, more complete object-oriented languages. If this is true then why are there more VB6 programmers? There are probably two reasons: VB6 is very approachable and Microsoft does a superlative job at marketing products. This makes VB6 perhaps the most common language and one with the highest market visibility but programmers, especially non-VB6 programmers knew there were problems with VB6. If this weren't true we would be using VB7 instead of VB.NET. Clearly even Microsoft recognized some technological deficiencies in VB6.
Technical Perspectives on Visual Basic .NET
Have you ever had the experience where you told another programmer you wrote code in VB6, and they sneered because they thought VB6 wasn't a real language? I know C++ quite well yet have had that experience. VB6 is a real language but it isn't as hard to learn as C++ or Delphi, so programmers who use those languages sneered. (This is sort of how Army airborne rangers sneer at regular infantry. Ranger training is much more rigorous than plain old basic training and jumping out of planes is nothing to scoff at.)
VB6 is a real language and there are a lot of good applications that were actually finished in VB6 when many C++ projects failed. However, VB6 is not as technologically as complete an object-oriented language as C++ and Delphi are. This is where .NET comes in.
When you use Visual Basic .NET for the first time, you will quickly notice that there are some fundamental similarities in grammar. That is where the similarities end. Visual Basic .NET rests on the same .NET framework as C# and every other .NET language. Visual Basic .NET also supports almost all of the same idioms that C# and other object oriented languages support, except for a few. The net effect is that you can use the same familiar VB grammar but do anything with Visual Basic .NET that any other programmer can do with another language.
Visual Basic .NET supports inheritance, interfaces, both inheritance and interface polymorphism, garbage collection, multithreading, multiple interface inheritance, constructors and destructors, nested classes, and much more. These language features are important because they support implementing patterns and refactorings that have been demonstrated to help productivity, but it is not these new idioms that will help you be the most productive. Your greatest productivity gains will come out of the .NET framework itself.
Just like Java's framework, Microsoft's MFC, Borland's VCL, and frameworks from TurboPower helped you be productive in other languages, the .NET framework will help you be productive with .NET. The .NET framework is not just any framework though. Microsoft has leap-frogged over older frameworks adopting the best of existing technologies—like regular expressions and garbage collection—and innovating—the CodeDOM, attributes, and XML Web Services—to evolve into a best of class framework.
It is the comprehensive, well-designed, and publicly available—the sscli called Rotor—framework that will help you be more productive than ever. Unfortunately as I said at Comdex frameworks are only sexy to architects and programmers, and usually it is not these people that are the volume corporate buyers.