How to embrace the .NET paradigm shift

A huge chasm has always existed between what you can do with Visual Basic (VB) 6.0 and what you can do with Visual C++ (VC++). VB6 can almost always handle simple business-logic problems, but when things need to be more complex (which is generally a minority of cases), you need to break out VC++ to get the job done. If you're as old as me, you probably don't want to suffer through VC++; my brain just doesn't want to think that hard anymore. That's why I like VB: It's perfect for prototyping and building quick little solutions. If only VB had object-oriented programming and support for free threading, and would let me build scalable Windows services, everything would be great. Well, now everything is great.

Visual Basic .NET gives you all the ease of rapid application development that you've been accustomed to in VB6. Visual Basic .NET has significantly closed the gap between VB and VC++. You can build large systems in pure VB without relying on the complex code you have to write with VC++. Don't get me wrong—you still need VC++ for all low-level tasks (such as building device drivers, for example) and when performance is of paramount importance. But in general, you won't find a significant performance difference between Visual Basic .NET and VC++ .NET.

Don't be afraid of that "paradigm shift" you've been hearing about. Frankly, my stomach turns every time someone mentions the ".NET paradigm shift." Most of us are engineers, right? Why would we be afraid to learn something new? Isn't this why we became engineers? Everyone should embrace the opportunity to learn new techniques for solving business problems. We get paid to learn—what could be better than that?

If you are asking yourself what .NET language you should jump into, here are a few rules of thumb that seem to work. If all you know is VB, then use Visual Basic .NET. If VB is your primary language and you've dabbled in VC++ or Java, then both Visual Basic .NET and C# are terrific choices. If all you do is VC++, and you're not writing "down to the metal" code, then C# is ideal. VC++ .NET remains the jumbo jet of all the .NET languages, and you can do anything you want with it. With all of this power, of course, comes complexity. Java developers have J#, but C# is also an excellent choice (perhaps better, because C# will always be better integrated into .NET than will J#). If you're concerned that C# is a new language and you're unsure about its future, be assured that Microsoft has written large parts of the .NET platform in C#, so you know the company is committed to supporting this language.

Visual Basic .NET, C#, and V++ .NET ship with the Visual Studio .NET Beta 2. You can also download a Beta 1 of J#. Visual Studio .NET Beta 2 is free right now. It's extremely stable and ready to roll (I haven't seen one General Protection Fault yet). It can run side by side with VS 6.0, so install it now and play with all the cool new tools. Learn a new language of your choice, and then you can leverage your knowledge to learn other languages as necessary.