Where is Visual Basic 7?

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.