I have an opinion about nearly everything, but I'm on the fence about Visual Basic (VB) 6.0 versus VB.NET. Microsoft and the VB.NET proponents claim that VB.NET is the next evolutionary step for VB—finally bringing to VB some of the advanced features that other languages have enjoyed for years. However, many expert VB developers maintain that VB.NET changes so many established VB features that it isn't even VB anymore. From their perspective, the new product might as well be called FRED.NET.

VB.NET injects VB with a wealth of long-awaited new features, including true object-oriented inheritance (even cross-language object inheritance), overloading, free threading, strict type checking, and a new shared development environment. In using betas of VB.NET, I've noticed—and generally appreciated—several changes to established VB coding practices: True should be 1, not ­1, and functions should return values through a Return statement, not through the function name. Changes that are harder to get used to are zero-based arrays, passing parameters by value instead of by reference, and implementing forms as class modules. However, I found that the improved Visual C++ (VC++) compatibility and added capabilities (such as the ability to inherit a form) make these changes worthwhile.

Unfortunately, in a recent announcement, Microsoft said that it's rescinding some of the VB.NET changes, such as the value of True and zero-based arrays, to make VB.NET more compatible with VB 6.0. These minor reversals will do little to help established VB users migrate their code to VB.NET and will hinder the developing VB.NET language's cross-language compatibility—a main goal of the .NET Framework.

However, I agree that VB.NET's features are so significant that they change the nature of VB. The syntax and basic language changes assure that you'll have to rewrite all your existing VB applications to VB.NET. Yes, Microsoft provides a "migration tool," which generates an almost comical to-do list of the code it couldn't migrate—which is almost everything you care about. Rightfully, people who dislike VB.NET maintain that this lack of compatibility with existing VB code guarantees the need to continue to develop and maintain a VB 6.0 code base for the foreseeable future. Furthermore, nearly all the changes in VB.NET make the language more complicated, thereby negating two of VB's strongest points—its ease of use and low initial learning curve.

To provide the advanced language features and Web-development capabilities that experienced developers need, VB needs to change so fundamentally that it becomes incompatible with earlier versions of the language. However, I have so many VB projects in use that I can't foresee giving up VB 6.0 any time soon, and I don't want to use multiple development tools. I'd like to see Visual Studio.NET include support for writing VB 6.0 source code and for compiling projects that use the VB 6.0 runtime. We could then use one development tool and choose whether we wanted to write VB 6.0 or VB.NET applications. This solution would let us have our cake and eat it too.

End of Article




You must log on before posting a comment.

If you don't have a username & password, please register now.

Reader Comments

It looks like it is going to be easier to learn C# than to deal with VB.NET. Do you think MS maybe planned this?

Paul

The one thing I'd like to see gone is the mega-lame refusal to allow parens around the args list for a function call that doesn't assign its return value. (The error assumes a sub is being called, regardless of the declaration.)

For one thing, the code just doesn't look right. For another, this annoying constraint encourages use of dummy variables and makes for confusing inconsistancies--such as functions/subs that only take one argument, and will thus syntactically tolerate parens as part of a scalar expression. Lame!

I must also say that I've been highly dissappointed by the VBS Class implementation, the abysmal performance of which [imo] makes unusable in code that must be designed to scale. So object-oriented constructs that don't bleed a project dry with excessive performance costs would be a welcome addition to my development environment.

Anyway, I've never used VB proper, but I've written a ton of VBA, VBE, and especially VBScript (client and server side). The idea of a compiled server-side scripting language has its appeal, I must admit... If ASP.NET supports pointer types and lives up to its performance claims, I'll be making a move at some point...

But if the latest msdn.microsoft.com face-lift is to be taken as an example of a .NET site deployment, I for one will be in absolutely no hurry to get there! :-)

-Mark McGinty

Mark McGinty

I cannot understand why MS would back away from thse changes (such as True=1) that it has proposed for Visual Basic.NET. The sensible thing for Microsoft to do would be to maintain the ability to develop unmanaged code (as does Visual Studio C++ does) and permit the development of fully .NET-compatible managed code. You could then specify which code is generated (in C++, managed code is the current default) through a project setting.

James A. Macdonald

Quote from the article:

"True should be 1, not ­1, ..."

You know, I believe there is a typo there somewhere ...

Stormkraft

1- What is the basic difference in VB and VB.net? 2- Which one is better? 3- With respect to design which one is better and why? plz post ur answer to sobiasyed@hotmail.com or i will visit your website. p.s Your site has given me almost all the answers to my confusions thats why i have asked from you and this site is the best. regards

Anonymous User

Article Rating 5 out of 5

dfsadfwdafsda

Anonymous User

Article Rating 5 out of 5

so visual studio c++ and borland (somthing) are the best of compilers?

what i want to know is why is one better than the other. here is what i already heard from some net people. MVSc++/MSVSc++/MSVc++ which ever is the correct one is much faster and more powerful and creates more agile programs. borland is more easy and cost less and made for sissys?... are these accurate? if not then please add any additionaly information/opinion on these 2 compiler

Anonymous User

Article Rating 2 out of 5

 
 

ADS BY GOOGLE