Microsoft & .NET Visual Basic Where is Visual Basic 7?

Where is Visual Basic 7?

About three years ago this September my good friend and editor Sharon Cox asked me to prepare an

outline for a book on the upcoming version of Visual Basic 7. In anticipation I began preparing an

outline based on what I knew about VB6 while I waited for the beta for VB7. Basically, the outline was

a VB6 outline with room for new VB7 stuff.

Like many people I was in for a huge surprise. Besides being way off base on my outline I

discovered that Microsoft had big plans for VB7, and the first and slightest indication of this was

that it would be called Visual Basic .NET. So, while at an author’s summit in Redmond I took furious

notes, completely scrapped my original outline, and wrote a new outline that is now the published

title Sams Visual Basic .NET

Unleashed. (In fact, I am working on my third and fourth .NET books as I am writing this article.)

Fast forward to the future.

Last month I was fortunate enough to participate in the Comdex event “Great Debates: .NET or

.What?” (See Jeremy Rosenberg’s “Great Debates ask .NET or .What?” or visit www.comdex.com for highlights of the debate and Comdex.) Imagine my surprise during a

meet and greet period of the debate when a member of the audience asked me where VB7 was? The tone was

almost one of fear of abandonment. I could hardly believe that there could be this much confusion over

Visual Basic .NET left anywhere in the world, yet someone did pose the question.

First, let me say that the question is surprising because I think there have been more books

published about Visual Basic .NET and .NET in general than any new technology to date. Counter-posed

against the embrace of .NET made by the publishing industry I am surprised that every programmer and

company hasn’t switched to Visual Basic .NET.

If you are a programmer that wants to switch to .NET but has been unable to convince your manager

or boss to do so, I feel your pain. I have been programming with VB.NET for more than a solid year,

and I don’t want to ever go back. Let me tell you why, and perhaps provide you with some better

arguments to take back to your manager.

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.

Emotional Arguments to Present to your Boss

I think Microsoft knows there framework is great but a framework won’t compel business managers to

adopt .NET. That’s why you are hearing so much about Web Services and security. Bridging legacy

systems, interoperability, open standards—XML—and security is probably a better selling

proposition to managers. And, Microsoft has added real value on these fronts.

Managers will eventually buy into .NET because their golf partners and peers in other companies

that have adopted .NET will beat the pants off of them in time to market, efficacy, and cost of

ownership. However, this kind of revolution can take a while, so I have included a few ideas you can

try to speed things up. These ideas are tried and true but require some extra dedication on your

part.

  • Work after hours on a parallel project one in .NET and the other in VB6. When you have a

    significantly advanced after-hours solution show your boss

  • Agree to a shorter deadline if you can use .NET for your next project
  • Start a brown bag lunch club where developers bring a bag lunch and begin teaching each other

    things about .NET. Each session have someone present a new topic

  • Join your local .NET users group and invite speakers to your brown bags
  • Buy your own copy of .NET
  • Slowly begin replacing your VB6 books with .NET books on your shelves at work
  • Ignore your manager and build it in .NET anyway, playing dumb when he or she catches on
  • Say things like “of course if we were doing this in .NET then we could do it in a)half the time,

    b)at half the cost, c) with greater reliability or security, or d)all of the above

  • Talk about great new features and then say “oh, well that is available only in .NET”
  • And, if all else fails simply tell your boss it is time to upgrade the version to VB7 and don’t

    say “.NET”

In all seriousness there is a technology drawback here. To run .NET on client’s computers those

computers must have the .NET framework (unless you are building a Web application). However, you can

download the framework for free and it is no different then having the Java framework on a client

computer. Upgrading infrastructure is a big deal to businesses, so you will have to make this seem as

trivial as it really is.

Summary

Visual Basic .NET is an exciting language to program in. You will be more productive, and you will

write better software than ever before, but there are a couple of stumbling blocks. The anti-Microsoft

faction is beating up Microsoft on issues of security and reliability. And, while a lot of security

issues have to do with non-OS related issues, the anti-Microsoft faction aided by the press is having

an impact. A second roadblock is the perception of complexity when it comes to putting the .NET

framework on client PCs. If you work for a big company this is a big job. You will have to articulate

that there are already other vendor frameworks on those same PCs—like Java—and that this

is not a big deal nor is it a lock in strategy. Those same PCs can have other vendor’s tools whether

they were built with .NET or not.

At the “Great Debate: .NET or .What?” the oppositions point of view was that .NET is a lock in

strategy for Microsoft. This isn’t true. I have Sun’s Java, Borland’s VCL, VB6, and MFC based

applications all running merrily on the same computer. .NET is a framework that will help propel the

needs of present and future computing. .NET does address real present and future needs of Internet

applications, and .NET is comprised of both real products, like Visual Basic .NET, C#, and ADO.NET and

marketing hyperbole. Marketing is an essential aspect of communication.

In closing, I encourage you to evaluate individual offerings tagged with .NET and evaluate against

their purported and actual merits. As developers we will certainly reap a huge technological

windfall.

About the Author

Paul Kimmel is a freelance writer for Developer.com and

CodeGuru.com. Look for his recent books “Advanced C# Programming” from

McGraw-Hill/Osborne and “Visual

Basic .NET Unleashed“. Paul Kimmel is available to help design and build your .NET solutions and

can be contacted at [email protected].

# # #

Latest Posts

Related Stories