Is VB the Least Among Equals?
VB.NET gets left behind (again), this time by the Windows Live team.
Pop quiz: What do ASP.NET (read: C#), Java, Perl, PHP, Python, and Ruby have in common? The answer: Microsoft's Windows Live team recently posted its Live ID Web Authentication software development kit (SDK) to the Web, and each of these languages has its own iteration of that SDK. Notice any language that's glaring in its omission?
Several months ago, I wrote on this page that for the first time ever, more VSM readers called themselves C# developers than VB.NET developers (Editor's Note, "C#'s Exploding Mindshare," November 2007). In the same article, I noted that this upward trend in C# readers coincided with similar trends in books sold for C# versus VB.NET, and in a couple other key areas. Many of you responded to that editorial, some to agree, some to say that the VB developer is woefully undercounted in the kinds of measurements I used. A representative from Microsoft's PR team informed me in response to that editorial that VB.NET remains Microsoft's most widely used development language.
The Windows Live team is merely the latest group within Microsoft to release SDKs and samples for C# (and other languages), but not VB.NET. For example, the Windows XNA team doesn't officially support VB developers, nor does the team that's responsible for the .NET Micro Framework.
One constant refrain from groups at Microsoft on this subject has been that the teams have limited resources, and when demand is there, VB developers will be supported. But the limited resources argument doesn't work at all here. How many professional developers use Python for Web development? How do six other languages count for more than VB -- the most popular programming language in the Microsoft stable, mind you -- when it comes to deciding whom to support in the SDKs of key Microsoft technologies? Call me crazy, but I'd think the most popular programming language you create could crack the top six.
Is this anyway to treat the largest group of developers you have?
Previously, I've touched on the fact that VB developers have trouble getting respect from their peers or even from the company that makes the programming tool they use. When Microsoft was initially touting VB as being included in the Visual Studio .NET suite, one of the points its product managers emphasized was that VB developers would have a "first-class" development language. VB.NET would have all the power of the .NET Framework -- inheritance, structured error handling, free threading, and so on -- and it wouldn't suffer from the stigma of having second-class status compared to any other .NET language.
So what does it mean to be an equal, first-class member of the .NET Framework? It doesn't mean code samples. It doesn't mean official support from other teams that develop new technologies at Microsoft. When longtime travelers complain that first-class doesn't mean what it used to, I think they might be onto something. Far from being a first-tier language in the .NET suite, VB is often treated as the least among equals.
So here we are, several years later, and VB gets no more respect now than it did when the .NET initiative was announced.
The shame of it is that VB.NET remains an excellent programming language. Its XML features in its 2008 iteration are a step above those in its C# counterpart. This isn't a case of the language atrophying from within -- which would be terminal -- but from without. Unfortunately, that might ultimately prove just as deadly over the long haul. Already, VB is declining in relevance -- most-widely used development language or not. And each time that Microsoft releases a new SDK that lacks support for VB, but includes it for its C# and other language brethren, VB's relevance declines a little bit more.
No doubt people at Microsoft will contest this opinion, but actions speak louder than words. The time is rapidly drawing near when Microsoft will have to address this longstanding shortcoming, not by iterating how important VB and the developers who use it are, but by doing the only the thing that has any bearing in the real world: Providing first-class support for a first-class member of its Visual Studio .NET suite of tools.
Do you think VB is treated as a first-class member of the VB.NET suite? Should it be? E-mail us at email@example.com.
Patrick Meader is editor in chief of Visual Studio Magazine.