PYPL编程语言人气指数:C#才是2012年度语言

jopen 11年前

        英文链接:PYPL PopularitY of Programming Language index January headline : C# is the "language of the year

就“2012 年度编程语言”到底是谁,PYPL 网站近日发文称,“TIOBE 编程社区指数有误,Objective-C 并非是 2012 年度语言,C#才是 2012 年度语言”。的确,如果按照 PYPL 指数来看,C# 在 2012 年内的普及份额(popularity share)增长量最高:+1.8 %。如果按过去 5 年中份额增长量来算,Python 则是增长速率最快的语言。

        (伯乐在线注:对于“年度语言”奖项,TIOBE 指数和 PYPL 指数都是授予年度内市场份额增长量最高的编程语言。)

        PYPL 人气指数(PopularitY of Programming Language index)是分析用户在 Google 中搜索各种编程语言教程(tutorial)的数量来推断编程语言的受欢迎程度/人气(popularity),特定语言教程(tutorial)的搜索 量越多,则认为该语言更受欢迎。PYPL 指数是一种先行指标(leading indicator),其原始数据来自 Google 趋势,所以大家都可以去验证,或者针对自己所在国度做分析。

        如果你相信集体智慧的结晶,那 PYPL 编程语言人气指数有助于你决定学习哪种语言,或者在新项目中使用哪种语言。下面是 PYPL 指数排行榜 Top 10。

        PYPL 指数排行榜 Top 10

PYPL编程语言人气指数:C#才是2012年度语言

        PYPL 人气指数长期趋势图

PYPL编程语言人气指数:C#才是2012年度语言

        上图透露的一些信息:

        ●Java 和 JavaScript 相对非常稳定;

        ●PHP 有点颓势,哪种语言会借其下降而上位?这尚无定论,也言之过早。

        ●在 2009-2011 年期间,C#和C语言都有奇特的波动;

        ●C#的增长是以 C 和 Basic 为代价

        ●Python 的增长是伴随着 Perl 的衰落

        FAQ

        1. 为什么 PYPL 和 TIOBE 如此不同?

        TIOBE 指数是一种滞后指标。它是统计包括特定语言名称的网页数量。Objective-C 有超过 2800 万网页[s],而 C 语言只有 1100 万[s]。 这也就解释了为什么 Objective-C 在 TIOBE 有更高的排名。但是哪些人会去看那些 Objective-C 网页呢?根据 Google 趋势数据,几乎没什么人。Objective-C tutorial 的搜索量不到 Javascript tutorial 的搜索量的 1/6[s],而 Javascript 大约有 7.4% 的搜索份额(见上图),所以 Objective-C 也就差不多是 1.2 %。

        分析 StackOverflow 网站上各种语言的标签数量,或者分析维基百科上各编程语言词条页面访问数比例[s],Objective-C 都是相似排名。此外,TIOBE 使用 “programming”一词作为搜索短语也是有误导的(请参见下一个问题)。

        2. 为什么你们 PYPL 采用“tutorial”作为 Google 趋势中的关键词?

        我们采用了如下原则:

        ●只用编程语言的名称,会导致不一致的结果。比例:Python,它就还有其他很多意思。

        ●相同的搜索短语适用于所有编程语言,有一致性;

        ●而“programming”则没有,“C programming” 使用频率比“ PHP programming ”高很多,因为 PHP 并不需要限定词;

        ●不管开发人员学习任意一种新语言,“tutorial”词语都是高频使用,所以它是非常好的先行指标。

        虽然“tutorial”是英文词语,不过如果有需要,PYPL 指数也可去统计其他语种。

        3. 你们如何计算搜索引擎份额?

        We export the data from Google Trends in CSV format,[s] and import it in Excel for analysis. We export data from successive pair-wise comparisons, from java-PHP to Ruby-Perl, and calculate the ratios for each pair and each week (using a running average over 4 weeks to reduce noise). The multiplication of successive ratios yields the exact trends for each language, in a consistent scale. Normalizing it to 100% for each period yields the share of searches. Linear regression over the last 12 months gives the yearly growth.

        我们以 CSV 格式导出 Google 趋势数据[s],然后在导入到 Excel 中作分析。连续两两比较,从 Java – PHP 到 Ruby – Perl,并计算每对在每周的比例(超过四周则使用平均值,以减少噪音值)。

        4. 为什么在 PYPL 图表中 Java 曲线这么平稳,而在 Google 趋势中 Java 超过 5 年都下降了?

        那是因为 Google 趋势图表显示了“tutorial”搜索总数在总体时间中变化。另外那段时间中大部分编程语言(大多数关键词)都严重下降了。相反,PYPL 图表是显示“Java tutorial”短语搜索量在所有语言“tutorial”搜索中的份额,从 2004 年开始,java 份额数字一直相当稳定。