做为一名程序员,都比较关注其使用编程语言的热度,一方面编程语言的热度决定了它拥有多大的市场,另一方面也关系到行业内程序员选择机会有多大。
我们总听说某个编程语言排名第一,那么这些数据到底准不准确呢?
1.PHP是不是宇宙第一?比如,我们经常会听到一句话:PHP 是宇宙第一编程语言。
关于这个问题,我们很容易在 TIOBE 排行榜上得到求证,上图是2002-2019年前10大编程语言排行情况。
可以明显看出 PHP 虽然也算是一个比较流行的编程语言,但其历史上就从来没有成为过第一,在 PHP 最巅峰时刻,排名成绩也只能在第三、四名。
我相信每个程序员应该都听说过 TIOBE 这个名字,因为几乎每月都有媒体报道当月 TIOBE 编程语言排行榜,以至于它成为编程语言排行榜领域最权威的组织。
所以我一直就在好奇,TIOBE 到底是个什么机构?他们又是如何计算编程语言排行榜的?且听我慢慢道来。
2.TIOBE 公司介绍TIOBE 公司成立于 2000年10月1日,由瑞士的公司 Synspace 和一些独立的投资人创建。TIOBE是"The Importance Of Being Earnest"的缩写,该公司主要关注于软件质量的评估。
TIOBE 程序设计语言指数是由该公司推出并进行维护的,这个指数将程序设计语言以排名列表的形式提供出来,并且每个月更新一次,用来表示程序设计语言的流行度。
TIOBE 排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及 Wikipedia、Amazon、YouTube 统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
该指数可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的。观察认为,该指数反应的虽并非当前最流行或应用最广的语言,但对世界范围内开发语言的走势仍具有重要参考意义。
下图为 TIOBE 10 月最新编程语言前20名:
榜单地址:https://www.tiobe.com/tiobe-index/
3.TIOBE编程语言排名的评估方法TIOBE 指数的评估是通过统计该编程语言在主流搜索引擎上被搜索的次数来计算的。搜索包括在搜索引擎,新闻组及博客上的搜索等,主流搜索引擎由 Alexa.com 网站上的排名来决定。
一般来说,只有符合条件的搜索引擎,符合条件的编程语言才会被计入 TIOBE 指数。
下面有25个搜索引擎用于计算 TIOBE 指数。所选搜索引擎是 Alexa 排名最高的25个符合以下条件的网站:
1.该网站的入口页面包含一个搜索工具
2.查询该网站的结果包含页面点击数量的指示结果
3.应该以带有清晰标签的 HTML
4.具有特殊字符的语言搜索引擎应该被正确编码
5.搜索引擎应该至少返回1个查询
6.查询该网站的结果不应包含太多的异常值
7.色情网站不包含在内
基于上面的标准,符合条件的搜索引擎如下:
Google.com: 7.69%
Baidu.com: 7.38%
Wikipedia.org: 7.08%
Yahoo.com: 6.77%
Csdn.net: 6.46%
Bing.com: 6.15%
Google.com.hk: 5.85%
Ebay.com: 5.54%
Google.co.in: 5.23%
Msn.com: 4.92%
Hao123.com: 4.62%
Amazon.in: 4.31%
Google.com.br: 4.00%
Google.co.jp: 3.69%
Google.de: 3.38%
Google.ru: 3.08%
Amazon.co.uk: 2.77%
Google.fr: 2.46%
Indeed.com: 2.15%
Google.es: 1.85%
Google.it: 1.54%
Sogou.com: 1.23%
Google.cn: 0.92%
Google.com.tw: 0.62%
Google.com.mx: 0.31%
可以看到大部分的搜索引擎都来自谷歌,也从另一方体现了谷歌的国际化程度。国内主要有百度、Csdn、Hao123、搜狗等符合条件,这个结果凸显了百度、 CSDN 和 搜狗在国际上的影响力。
也可以说主要是由以上 25 个网站,每个月的搜索情况来决定当月编程语言的排行榜。
指数计算公式
如果用 "hits(PL#i,SE)"表示编程语言 PL 在搜索引擎 SE 上的指数排名为 i 的搜索次数,n 表示搜索引擎个数,则 PL 在前 50 名编程语言中排名评估的计算公式为
((hits(PL#i,SE1)/hits(PL#1) + ... + hits(PL#50)) + ... + (hits(PL#i,SEn)/hits(PL#1) + ... + hits(PL#50)))/n
4.TIOBE指数的3个必备条件被选入 TIOBE 指数的编程语言必须满足3个必备条件:
①它在维基百科有属于自己的词条,且维基百科清晰地陈述了它是一门编程语言,这就是为什么(Ruby on) Rails, Excel, Android, Boost, Cocoa, ASP and AJAX 没有被选进 TIOBE 指数排行中的原因。