Are You a C#PRO?
You Should Be
By Elden Nelson
Year after year, in interview after interview, I have tried to trick Microsoft spokespeople into taking a stand on which .NET language they prefer: C# or VB .NET. It's never worked. I have never been able to get anyone to go public. "It's a lifestyle choice," they say, implying that it's nothing more. And for a long time, much of the press has gone along with this noncommittal philosophy.
Well, enough time has passed that I think I can say the .NET language you choose is not simply a lifestyle choice. Which language you use can impact the design and maintenance of your applications, and what languages you know can affect your salary or even your options of where to work.
Before I launch into reasons why I think it's crucial for you to learn C#, let me try to head off a flood of flame-mail by stating: I am not anti-VB. Furthermore, asp.netPRO is not going to stop including VB code. For the foreseeable future, I plan to continue using the exact same technique for which language an article includes as I've always used: ask the author to include both VB and C# code for download if possible, but respect the author's language preference in the article itself. After all, in this magazine, ASP.NET - not any specific programming language - is the star of the show.
That said, which languages you know - and are learning - can affect your present and future development efforts. Let's take a look at why.
Power and reusability. Generics, which will be introduced in the Whidbey version of Visual Studio .NET, is a major step forward for code reusability. Even if the projects you're working on right now are fairly modest-sized, you want to be ready to extend your apps, or to move forward and build large frameworks and business systems. For this kind of work, Generics is a key capability, and only one of several powerful new capabilities - you'll also find iterators, anonymous methods, and partial types - to appear in C# 2.0. Look forward to a discussion of these in the November 2003 issue of C#PRO.
Standards. A standardized specification for C# has been certified by both ECMA and ISO. Now, that by itself might not seem too exciting, but what it implies is actually pretty important. First, Microsoft (along with HP, Intel, and other companies) went to this trouble because certain companies and government agencies require this certification before they will adopt a technology. By knowing C#, you - either as an individual or as a development house - increase the scope of your options.
Perception. Whether it's just or not, C# developers make more money, get work more easily, and enjoy more prestige than VB developers. In a representative anecdote (http://www.angryCoder.com/blog/entries/20030605.html), ASPSOFT president and asp.netPRO columnist Jonathan Goodyear describes how, at his client's insistence, he converted a VB .NET code base to C#, then says, "The overwhelming majority of my clients ... are resolute in their insistence on our use of C# while building their software."
Essentially, if you're using VB .NET and can make the time to start supplementing your base of .NET knowledge with C#, it'll be worth your while - if not now, then soon; if not in this job, then in the next.
There are enough compelling reasons to start learning C# that in this issue you'll find a sneak peek at C#PRO. Inside, you'll find some terrific articles that any developer who's chosen to work with .NET - and that for sure includes all ASP.NET developers - can make use of. I'm extremely pleased to have Jeffrey Richter - a Wintellect co-founder, well known author, and bona fide software legend (check out http://www.softwarelegends.com) - write about one of the unsung-but-powerful tools you can use to streamline your development: declarative programming. Bill Todd gives you a solid walkthrough of using Borland's intriguing C# development tool (hey, C# isn't only for VS .NET developers anymore), C#Builder. And one of my all-time favorite deep-thinking developers, Dr. Richard Grimes, answers your questions.
I've got a feeling I've opened - or reopened - a big can of worms here. So tell me, do you agree? Disagree? Think I've missed the point altogether? E-mail me at [email protected].
Elden Nelson is editor-in-chief of asp.netPRO and its companion e-newsletter, asp.netNOW.