C#'s Exploding Mindshare
Why is C# taking the lead over VB.NET?
C# has led a charmed existence since the tool's launch as part of Visual Studio .NET on Feb. 13, 2002, at VSLive! San Francisco. Fathered by Anders Hejlsberg and nurtured by Microsoft, C# has captured the bulk of market share and mindshare for professional .NET development, particularly in the enterprise.
Consider these numbers from a recent survey conducted by VSM, where we asked our readers to tell us their primary programming language: 41 percent said they used C#, 34 percent programmed in VB.NET, while 25 percent responded with "other."
This might not seem remarkable at first glance, but remember that VSM began life as a magazine devoted to covering Visual Basic and that the magazine still features a roughly 60/40 VB to C# split in its code coverage. This is the first time C# has supplanted VB as the language of choice, and it represents a significant shift for the magazine.
I was curious, on seeing these numbers, how they compared to general development trends. For example, I wanted to know whether these results were specific to the magazine only, or were they a reflection of the market at large? Anecdotal evidence would suggest this is a general market trend, but I wanted to move beyond anecdote and into specific examples.
So, I fanned out, discussing usage numbers with book publishers, vendors, authors, and even user group managers. I also requested relative download numbers for VB.NET and C# from Microsoft for its Express product line. Consistently, I heard the same story, with one exception: There are more jobs for C# developers; C# users outnumber VB.NET developers by a good margin; C# users overwhelmingly participate at user group meetings; and C# versions of books outsell identical VB versions of the same book.
Let's tackle the last point first. At VSLive! Las Vegas, I spoke to Stephen Wiley, marketing product manager at Apress. Said Stephen: "C# titles outsell VB.NET title books handily, by somewhere between a 2-1 and 3-1 margin." Stephen also mentioned that the company's signature title, Andrew Troelson's "Pro C# 2005," outsold its VB counterpart, "Pro VB 2005," by about a 4-1 margin. Stephen added a couple important caveats. First, many of the company's C# titles came out earlier than its VB.NET titles, and were more aligned to the sweet spot of the market (that is, they were released at or close to the point when Microsoft released VS 2005). Second, the delay to market for "Pro VB 2005" was especially long; it debuted approximately seven months later than the C# title. Stephen acknowledged that Apress undoubtedly missed some sales because of this delay. The Apress caveats raise an important question: How much of this mindshare explosion has been the result of a self-fulfilling prophecy? If Apress had released the VB versions alongside the C# versions of these titles, how much would the scales have tipped more in VB's favor? That question aside, it should be pointed out that the reason book companies and others gave C# a higher priority is because sales of C#-based products have outperformed those of VB.NET-based products.
Another data point--one that concerns everyone--is jobs. Anecdotal stories abound about the large number of jobs for C# developers, especially compared to their VB.NET counterparts. At random intervals, I've been logging onto Monster.com to survey development jobs for VB.NET and C# programmers. Monster doesn't display results that include more than 5000 hits, so you can't do long-range measurements of the number of job postings. But regular spot checking on jobs posted over the past week or so produced similar results. If you search on C# versus Visual Basic .NET (or VB .NET or VB.NET--Monster cross-references all of these terms, which is one reason why I'm discussing results from Monster versus other job sites), C# returns roughly twice as many job opportunities as VB.NET does. That's an interesting metric, but of course, it's more complicated than that.
When I told Bill McCarthy about my comparisons and the results, he pointed out that Microsoft has dropped .NET from its official naming of VB. "Yeah yeah," I said. "But no one else has." But he had a point, so I began including Visual Basic in my search terms and still got numbers slightly lower than C#, albeit the new search didn't discriminate between .NET and non-.NET versions of VB. You can't simply throw out VB6 postings because many jobs require both VB6 and VB.NET experience. Other postings are so poorly worded it's difficult to tell whether the company seeks a VB.NET developer or a Classic VB developer. (Another point of interest: Java-related jobs outnumbered C# jobs by about 2-to-1; narrowing the Java search to J2EE or JEE produced roughly comparable numbers of Java-related and C#-related jobs.) The 2-1 ratios hold up at other job search sites on strict comparisons of C# versus VB.NET jobs available, and factoring in "Visual Basic" specifically tends to muck results up. That said, the preponderance of these comparisons suggests there are more jobs for C# developers -- possibly significantly more -- but this is an area where more research is required. And my results here did not match the anecdotal stories you hear about VB.NET jobs being dwarfed by C# offerings.
One exception to C#'s dominance is in the Microsoft Express line. Because you download the Express line products individually, I thought it might be instructive to know how VB was performing relative to C# in requests to try free versions of the tools. I didn't receive relative usage numbers, but Microsoft's PR firm, Waggener Edstrom, provided three basic data points in response to my inquiries. First, VB.NET is the most popular download of all the Express downloads. Second, C++ is the most popular download among students. Third, 80 percent of all downloads for the Express line were by hobbyists. It would be nice to have more data about these numbers, such as how many people use the tools once they download them, but it's interesting that the one area where VB.NET outperforms C# is in the hobbyist market.
By almost every objective measure I could think of and confirm in some way, with the exception of the Express line downloads, C# has a small to considerable edge in market- and mindshare relative to VB.NET. But what does it all mean? I've kept the focus of this Editor's Note extremely narrow, addressing only the issue of market acceptance. For example, I haven't touched on why C# has grabbed market share and mindshare so quickly, nor have I addressed to what extent the perceptions of market share are the result of self-fulfilling prophecies. But I will return to these subjects in the coming months, touching on the reasons why C# has exploded as it has, including whether this rapid adoption has been driven by the market or by Microsoft; whether we are seeing the effect of self-fulfilling prophecies; and whether it matters. I'll take up larger issues, too, including what the implications might be for the future of both languages.
Talk back: Fact or fiction? Is C# replacing VB.NET in both market share and mindshare? Why do you think so, and what data points are you aware of that back up your position? Share your thoughts with us at firstname.lastname@example.org or email@example.com.
Ken Cox's review of MadCap Flare ("Author XML-Based Help," October 2007) indicated that the product "requires an external application for source-code editing." This statement is incorrect. MadCap Flare does include a built-in source-code editor, so there's no need to rely on an external code editor. VSM apologizes for the error.
Patrick Meader is editor in chief of Visual Studio Magazine.