By Paul Litwin
I went to the release of Microsoft s .NET Framework SDK and Visual Studio .NET at the February VSLive conference in San Francisco. Bill Gates did the honors and mentioned (among other things) that Borland was developing .NET versions of its Delphi and C++ products. That adds two more options to the ever lengthening list of supported .NET languages. But while you can develop ASP.NET applications using COBOL, Perl, Delphi, Haskell, or Eiffel, most will not. At the risk of offending the other language vendors, the choice for most developers will come down to a fairly simple choice: Visual Basic .NET versus C# .NET.
Craig Utley tackles the VB and C# debate in VB .NET vs. C# but that won t stop me from thrusting forth my opinion. Let me begin the debate with a rant: I m continually amazed at the number of people who will tell you that because Visual Basic is changing so much, it will be just as easy to go from VB 6.0/VBScript to C# .NET as it will be to VB .NET. That s a crock. If you re a VB person (and by this I mean that you have not written a significant amount of C, C++, or Java code), then C# will give you fits. Case sensitivity, for one thing, will drive you crazy if you re not used to it. Crazy. Not to mention the little = versus == issue. A host of other little differences will haunt you at every turn.
For me, the whole debate comes down to one word: leverage. That is, the decision as to which language you choose should revolve around what you can leverage from your existing knowledge base. If you re currently most comfortable developing applications in Visual Basic, VBScript, VBA, or another BASIC dialect, then stick with VB .NET. On the other hand, if you live and breathe C, C++, Java, or some other C-family language, then C# is your ticket. (Of course, if you re a Java guy or gal you may want to go with J# .NET, which was still in beta as we went to press. JScript .NET is another possibility, but it s somewhat of a second-class .NET language.)
For those who have missed the point, let me emphasize: C# is no better at .NET than VB! Nor is it any worse. Unless you plan to work with a lot of unmanaged C++ code (which, by the way, is very un-.NET and very unsafe), C# offers no significant advantage over VB. It s not more powerful, it s not faster, and it s not cooler (despite what some pundits would have you believe). The whole point of the .NET Framework is that language doesn t matter any more. So pick the language that works best with your existing neurons the one that will help you get the job done today rather than next month.
What about the idea of learning both languages for the ultimate in developer flexibility? I can buy this argument for those seasoned developers who have experience in both language families and need to work both sides of the aisle. But for many developers, especially newer developers, this is a recipe for disaster. Just keep in mind the old adage: Jack of all trades and master of none. It applies aptly to this discussion.
Paul Litwin is editor-in-chief of asp.netPRO magazine. Readers may contact him at mailto:[email protected].