Saturday, February 21, 2009

Search Terms as Indicators of Platform Popularity

Lately, I've came across a number of articles that use the number of search queries as the indicator of the popularity (or lack thereof) of a certain platform. A typical one is comparing the popularity of Visual Basic vs. C# as the language for Dot Net development. At varying degrees, these article seem to be committing a common fallacy of false cause, assuming that the popularity, acceptance, or adoption of the language is driving the number of searches. In fact it's possible the number of searches is indirectly related, or not related at all to any of those factors.

Visual Studio magazine has published a few articles that include, recently 'Where Did All The Developers Go?' by Dan Appleman in Feb. 2009, and C#'s Exploding Mindshare by Patrick Meader in Nov. 2007 (including the use of book sales). A number of Wikipedia articles - Comparison of C sharp and Visual Basic .NET include this. Blog posts (http://jonathanparker.com.au/archive/2006/10/13/google-trends-c-vs-vb-net.aspx, http://alpascual.com/blog/al/archive/2008/01/06/is-c-is-taking-over-vb-net-or-just-a-trend.aspx) reference this.

The sources themselves are fairly unassuming - Google Trends is strictly raw data, and Tiobe Software's Programming Community Index clearly spells out the criteria by which they are rating. The articles using such then synthesize this into the broader popularity of the language itself (vs. the concept of searches related to it)

In practice, developing with Microsoft Visual Studio of various types and versions, I've observed both trends that would drive searchs up... and drive it down... with much uncertainity as to where the final results lands at vis-a-vis any indicator of popularity, market acceptance, or the 'best' language.
  • Legacy VB searches - Pre-2003 or so, VB5, VB6, Classic ASP - there was a lot to search for, it was common to use Windows API calls in even some very routine Windows apps, and it was not extremely easy to discover the object model of components from within Visual Studio once you got beyond basic Forms and routine DAO/ADO data access
  • On the other hand... internet access was slower and less ubiquitous, and search engines, code sites less developed, this era probably referred to local help documentation more often.
  • .net Introduction - 2002-2003-ish - C#'s adoption would seem to drive those searchs up, and the changes to Visual Basic.net would drive up those searches
  • On the other hand... Classic VB apps being upgraded, and the use of the Microsoft.VisualBasic namespace could have led to those developers just continuing their practices with no need to search for additional terms.
  • Data-bound controls, other 'code-free' features - Building a .net app (as a beginner or expert), so much more of the process require no direct coding. While these step could still lead to bugs or questions, the resulting searches would be less likely to include a language-specific query, the search would be prefaced by 'Visual Studio.net' or 'ASP.net'
  • On the other hand... there could be a huge number of language-level searches, but the searcher doesn't care if the results of VB.net or C#. Once the issue at hand is seen in terms of which Framework classes are at issue
I appluad Appleman's February 2009 article - he addresses some of these nuances, including that experienced developers wouldn't often specify the language. Later in his article, though, he uses region-specifie search counts to assert that some countries are advancing in development skills (and future jobs). But it's possible that those regions are less-experienced and hence need to search more, their language or culture reflects differently in measuring of search results, they have more or less population, any number of other causes.

From those general trends, it would appear that the VB search counts could have gone nowhere but down, and C# search counts gone nowhere but up over each languages life, perhaps settling out as each language reaches an consistent installed base and changes become more incremental. A number of factors, though, including the true adoption of each language could significantly swing those numbers one way or the other. My goal here is not to debate VB.net vs. C#, but point out that comparing search terms popularities do not provide an unbiased view of either languages popularity, adoption, or quality.

No comments: