Counting deck chairs on the titanic
Fri, Nov 2 2007 16:57
Paul Vick released some statistics in relation to VB, which for discussion sake I'll repeat here :
- Visual Basic is the #1 .NET language (as reported by Forrester Research)
- Visual Basic is the #1 downloaded and #1 registered Express Edition (topping the #2 position by 20%)
- Visual Basic is the #1 MSDN language dev center and blog in terms of traffic
- The Visual Basic Team blog is in the top 1% in readership of all MS bloggers (I don't know where I fall in that since I host independently.)
I think you'd have to be taking the happy pills to see anything great in those stats, after all they avoid real numbers and they don't tell the underlying trend or growth.
Five or so years ago, before .NET formally launched, Microsoft reported VB as being the *MOST* popular language of *ALL* programming languages. Reports from Forrester backs this up, and this graph from O'Reilly books shows that VB was the most popular titles.
Note in the above graph that VB was as popular as Java at the start of 2003 but has been on a steady decline. C# on the other hand was showing a slow but steady increase.
Forrester also in mid 2005 released these figures:
- Java's 66% penetration is the highest among strategic programming languages for enterprise applications.
- Visual Basic 6 (VB6) and C/C++ have nearly as much penetration as Java,
- Visual Basic .NET (VB.NET) had 34% penetration
- C# had 15% penetration
- If all VB6 users converted to VB.NET, its share would increase to 70%.
The last statistic is an interesting one, what it tells us is that VB was the most popular language, and by mid 2005 VB.NET had managed to attract less than half of those VB had prior to the move to .NET.
More recent statistics are harder to come by. Anecdotal reports are that book sales of C# related topics are out selling VB at the ratio of 2:1. If books aren't a great indicator of growth trends perhaps jobs are. Searches at seek.com.au show C# jobs running at 7 jobs per every 3 that specify VB. There's some overlap but that's still a greater than 2:1 ratio. Likewise jobs at monster.com tally up similarly. Interestingly both also show J2EE about on par with C# and Java slightly higher. If you combine VB and C# there's not much in it compared to Java overall in the job market.
So what of stats from Microsoft ? Surely Microsoft would have figures and be touting it's success ?? Well no, not really. These cryptic figures Paul released are all I can find except for anecdotal quotes such as the quote from Joe Stagner that there are more VBers than "C# folk but the gap is narrowing". So what is it Paul actually is telling us ?
1. Visual Basic is the #1 .NET language (as reported by Forrester Research)
Okay so VB has gone from being the most popular language, to being just the most popular on .NET, a relative decline in market share. And the titanic was still the biggest floating ship right up till the moment it sunk, even when it was taking on water. To take a language from the most popular of ALL languages, to one of just a subset of languages is a negative trend :(
2. Visual Basic is the #1 downloaded and #1 registered Express Edition (topping the #2 position by 20%)
That figure alone is to be expected given VB6 was the most popular. You'd expect those people to at least try out VB Express unless marketing really screwed up. Again it tells us nothing about forward trends, just an indication of the past penetration that was there
3. Visual Basic is the #1 MSDN language dev center and blog in terms of traffic
Again that related heavily to the previous versions of VB. If you visit the VB MSDN site, that's where you also find info on previous versions. Look at the downloads for VB, and even today the most popular download is Visual Basic 6.
4. The Visual Basic Team blog is in the top 1% in readership of all MS bloggers
There are about 4500 blogs on MSDN, so 1% is the top 45 blogs. What that is telling us is that the team blog for VB only rates in the top 45 of blogs for Microsoft's Developer Network blogs. What are the other 44 ? And what does that tells us ? That we should all be programming in Scobble ?
I think the sad truth is that VB continues to decline due to market place perception. VB is in fact a very capable language. In fact in many ways it is better than C#. Form a pure technical perspective VB is the best language of the two for working with COM legacy applications. In 2008, VB is also the best of the two for working with XML. C#'s only technical feature that gives it a real edge is unsafe code.
So why is VB declining while C# is on the rise ? Microsoft is heavily to blame here. Although they say you are free to choose what ever language you like, they don't do that, they continue to choose C# over VB and the market place knows that. Given it's their platform we are actually coding on, it's understandable that we view their developers as leaders. And they lead towards C#.
Cost and time also figure into it heavily. Microsoft has sent out a clear message that if you want to work with Windows Live Id, Windows Search, Health Vault, .NET Micro Framework, XNA, then they don't view VB as important enough for them to vest any time on, so why should/would you ? They've made it clear they are going to pigeon hole VB.
Let me give you an example. Let's say today you wanted to incorporate the latest from the Patterns and Practices team. If you go over to CodePlex, you'll find the latest code in C#. If you want to build your app, but still have the flexibility to make changes, you'll need to go with C#. In fact if you look over at CodePlex, you'll find that C# projects outweigh VB at the ratio of about 7 : 1. And many of those projects are lead by Microsoft employees as part of their day job.
This leading of community projects, the work being done internally around C# all lead to C# developing greater market share as well as improving C# itself as the language gets "dog-fooded" more by Microsoft, thus gaining input from some of the world's best developers from practical usage of it. It's self feeding.
For Microsoft as a whole, they look at .NET penetration. The increase in C# at the expense of VB doesn't really matter, it's overall market share that does. Except perhaps for one really telling statistic. As Forrester said, if all the VB community switched to VB.NET back in 2005, VB would have had 70% market penetration. Given such a huge potential, it has to be negligent to let that slip away, and instead favor a new language because internally more people at Microsoft used C++. Really, the question should have been was there ever any need for C# given VB's huge market share ? Now the question is beginning to be the opposite.
And so it goes, we should be happy when they tell us how many deck chairs on the titanic, that the ship is unsinkable, yet we see the water line drawing nearer and nearer.......