In my last column “We All Need to Speak a Common Tongue,” I mentioned that with the different programming language dialects, it’s difficult at times for .NET developers to effectively communicate with each other. I want to make it clear that I wasn’t trying to single out Visual Basic (VB) developers as having problems with OOP. I find that they’re every bit as adept at building applications as Visual C# developers.
I also want to make clear that I’m not saying I don’t like all the VB keywords. For example, I think the use of the “inherits” keyword to signify inheritance is excellent. After all, VB is more verbose than Visual C#, which uses the colon (:) to signal inheritance, so the “inherits” keyword fits nicely in VB. Similarly, the use of the “MyBase” and “me” keywords in VB fit just fine in that language as compared to “base” and “this” in Visual C#. Variances between the languages don’t interfere with communication between developers.
My focus wasn’t on the fact that there are differences between VB and Visual C#. Vive le difference! There are reasons for those differences, which are related to how the developers who use each language see and approach problems. The fact is that each language has advantages. Even with the ease of use that Visual C# brings compared to Visual C++, most people will be able to follow what is occurring within a page of VB code easier than they’ll be able to follow a page of Visual C# code. After being given a simple explanation that “Dim” (shorthand for “Dimension”) tells the computer to allocate a block of memory of a given size (i.e., dimension) for a variable, most people are on their way to understanding VB. Another advantage of VB is that some of its features related to rapid application development (RAD) are more readily available than in other languages. For example, to resize an array on the fly, you simply use the ReDim statement. Similarly, to quickly access project settings, you simply use the My namespace.
Visual C# provides an environment in which programmers are protected by stricter type checking and more structured language rules. This environment is optimal because these programmers often access the underlying elements of the OS instead of just abstracting those elements, as a VB developer often does.
Each language is very capable, and debates on which to use border on nonsensical. My concern remains with certain keywords that interfere with the communication of key underlying concepts. Although changing the languages’ keywords isn’t something I expect to happen overnight, one thing that can be done is to provide developers with a better key to understanding the keywords of other programming languages, which incidentally leads to a better understanding of their own language’s capabilities.
Fortunately, such a Rosetta stone is being created on the Microsoft Developer Network (MSDN) at http://msdn2.microsoft.com/en-US/library/zwkz3536(VS.80).aspx. The keyword Rosetta stone on this Web page lists all the keywords for several Microsoft-supported languages and helps tie together the languages. Now that you about this Web page, all you need to do is memorize its contents--just joking. But seriously, if you look at this page, you’ll notice that every language has its own idiosyncrasies, which is fine. For example, if you want to find out how to declare a “pure virtual” function in Visual C#, you’ll see that you need to add the keyword abstract as your virtual function’s implementation (which by the way is the exception to the rule that VB is more verbose than Visual C#).
Finally, in past columns, I’ve mentioned various US and Web-based developer-related events, such as Microsoft TechEd and Microsoft Professional Developers Conference (PDC). This week I’ve been asked to mention an event in Europe. The fact is that I don’t want to limit my scope to just North America, so for those of you in Europe (or for those of you who have a very supportive boss), here’s your chance to attend a developer-related conference in France. Connections Europe will be in Nice on April 24-27. The Connections conference is really several smaller conferences dealing with Visual Studio, ASP.NET, SQL Server, and Exchange Server combined into one large event. As part of this announcement, you can get some discounts on admission by using the promo code DEVENL. For more details, go to http://www.devconnectionseurope.com/?refer=DEVENL.