Editor's Note

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 vsmedit@1105media.com or vsmednote@1105media.com.


Correction
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.

Reader Comments:

Fri, Nov 13, 2009 John cynicmag.com

I know this is replying to an old article, but one thing that you can't factor into any of these suppositions is that VB6 developers are more likely NOT goping to need a book on VB.NET than someone switching to C#. The same goes for someone learning it for the first time. Also, I would say C# has a sharper learning curve than VB.NET (I know both languages). It is a lot easier to teach a lay person IF x=1 THEN than if(x ==1). Plus there is probably ample net coverage of the VBesque syntax. As for the jobs, places who already have VB programmers don't need new ones, but places growing into C# (a new subject area) do.

Mon, Apr 28, 2008 Anonymous Anonymous

Tutto.

Tue, Apr 15, 2008 Walter Knopf Illinois

VB has been viewed by many professional programmers mostly as a hobbyist language (no offense to you VB guys).
I migrated from machine to assembly to Fortran to Pascal, at that time ignoring 'that Bell Labs language'. Thanks to Turbo-C I became a convert. The move to C# was a natural, none of the bloat of C++, concise syntax, OOP features without MFC.
Maybe that semicolon is driving VB programmers crazy?

Tue, Apr 15, 2008 Walter Knopf Illinois

VB has been viewed by many professional programmers mostly as a hobbyist language (no offense to you VB guys).
I migrated from machine to assembly to Fortran to Pascal, at that time ignoring 'that Bell Labs language'. Thanks to Turbo-C I became a convert. The move to C# was a natural, none of the bloat of C++, concise syntax, OOP features without MFC.
Maybe that semicolon is driving VB programmers crazy?

Tue, Dec 11, 2007 Evi Skitsanos

Well regarding jobs it is somewhat true, but not entirely. In my own primer i can tell that even if there C# to VB.NET jobs somewhere like 3:1, but concurrency there, there are so many C# programmers that they became cheaper than VB guys. Same story was PHP, you can get PHP guy almost for free, plenty of them jobless. When VB.NET job hits you it hits big with earnings way better than C#, again mostly because you don't have that much people to compete with... And this is what i like about VB and BASIC in general, it brings cash.

Thu, Nov 29, 2007

One of the greatest attributes of .NET is language neutrality.

The whole idea behind having a language neutral platform is to have multiple programming languages that compete with each other and introduce new and innovative ideas. Then you are able to compare and contrast and use the better ideas to improve each language over time.

Remember it is competition that breeds innovation.

Mon, Nov 19, 2007

The VB team sacrificed their market share when they failed to provide an upgrade route from VB6 other than the re-write option. All the hype about VB6 not being true OOP made people think that if they had to re-write anyway why not do it in C#? Most big VB6 houses simply held back because there was no real business reason to port. Only now that web programming has thoroughly taken off are the VB team making it easier to port VB6 apps.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above