编程语言排名到底是哪来的?
又是周末,这应该是 2019 年度最后一个周末了,各位同学周末快乐。
PS:小编没断更~~~~
一到年终,总归会有各种各样的排名,和编程相关度比较大的莫过于编程语言排名。
好像我们在网络上经常会见到编程语言排名,那么这个排名到底是从哪里来的?
神秘的面纱就要揭晓了,这个排名来自于: TIOBE 。
它的官网的地址是:https://www.tiobe.com/tiobe-index/
接着小编要证实一个可能会挨打的问题,PHP 到底是不是全球最好的语言?
我们用 TIOBE 排行榜来说话:
上图是从 2002 年至 2019 年的前十大编程语言的排名情况。
可以明显的看到,自从 2010 年前后, PHP 的排名呈现一个总体下降的趋势,并且在历史上从来没有成为过第一。在 2010 之前,最巅峰的时期也不过第 3 、4 名的样子。
我们找到了编程语言排行的来源,那么,TIOBE 这又是一家什么样的公司呢?
TIOBE 公司成立于 2000年10月1日,由瑞士的公司 Synspace 和一些独立的投资人创建。TIOBE是"The Importance Of Being Earnest"的缩写,该公司主要关注于软件质量的评估。
TIOBE 程序设计语言指数是由该公司推出并进行维护的,这个指数将程序设计语言以排名列表的形式提供出来,并且每个月更新一次,用来表示程序设计语言的流行度。
TIOBE 排行榜是根据互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及 Wikipedia、Amazon、YouTube 统计出排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
该指数可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的。观察认为,该指数反应的虽并非当前最流行或应用最广的语言,但对世界范围内开发语言的走势仍具有重要参考意义。
下图为 TIOBE 12 月最新编程语言前20名:
那么 TIOBE 是如何来给这些编程语言进行排名的呢?难道是做抽样调查?站在张江或者中关村的大街上,逢人便问:小哥哥(小姐姐),你最喜欢的编程语言是什么?
明显很不靠谱嘛~~~
TIOBE 采用的方式是统计编程语言在主流搜索引擎上被搜索的次数来计算的。
简单来讲就是看看哪些编程语言被搜索了多少次,用搜索的次数来进行排名。
TIOBE 对需要统计的主流搜索引擎也是有定义的,如下:
- 该站点的入口页面包含搜索工具
- 查询站点的结果包含页面点击数的指示
- 结果应该在带有清晰标签的HTML中可用
- 具有特殊字符的语言的搜索引擎应正确编码
- 搜索引擎应至少返回1个查询的1个匹配项
- 查询网站的结果不应包含太多异常值
- 色情网站被排除在外
而 TIOBE 所选择的搜索引擎是在满足以上条件下还要是在 Alexa 排名最高前 25 个,具体如下:
- 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%
- Amazon.in: 4.62%
- Hao123.com: 4.31%
- Google.com.br: 4.00%
- Google.co.jp: 3.69%
- Google.de: 3.38%
- Amazon.co.uk: 3.08%
- Google.ru: 2.77%
- Indeed.com: 2.46%
- Google.fr: 2.15%
- Google.it: 1.85%
- Google.es: 1.54%
- Google.com.tw: 1.23%
- Freepik.com: 0.92%
- Google.com.sg: 0.62%
- Google.com.mx: 0.31%
具体编程语言的指数计算公式小编就简单列举一下,有兴趣的同学可以研究下:
如果用 "hits(PL#i,SE)"表示编程语言 PL 在搜索引擎 SE 上的指数排名为 i 的搜索次数,n 表示搜索引擎个数,则 PL 在前 50 名编程语言中排名评估的计算公式为:
((hits(PL,SE1)/hits(SE1) ... hits(PL,SEn)/hits(SEn))/n
排名的机构有了,排名的算法有了,那么还剩一个问题,什么样的语言才能够称得上是编程语言?
TIOBE 指数选择编程语言的时候有 3 个要求:
- 该语言应在 Wikipedia 上有自己的条目,并且 Wikipedia 应该明确声明它与编程语言有关。这就是为什么不将(Ruby on)Rails,Excel,Android,Boost,Cocoa,ASP和AJAX视为索引的编程语言的原因。
- 编程语言应为图灵完备(http://en.wikipedia.org/wiki/Turing_completeness)的。因此,HTML和XML不被视为编程语言。
- 对于
"<language> programming"
格式搜索必须在 Google 上命中 5000 次点击以上。
非常相似的编程语言被分组在一起。当前,在计算分组的等级时会考虑单个语言的最大点击量。 TIOBE 根据以下规则对分组语言的定义进行了分组化:
除了上面介绍一些指数, TIOBE 每年还会评选出一门年度编程语言,用来表示在过去的一年中,上升的最快的编程语言,下面是一些历年的数据,今年的年度编程语言目前还不清楚:
不过 TIOBE 能反映的只是一个编程语言的流行程度,和这个编程语言的好坏从根本上讲是毫无关系的。
当然,关注 TIOBE 编程语言排行榜也是具有一定指导意义的,毕竟做为编程领域内唯一具有权威性的排行榜,对我们选择编程语言时起到一个参考作用,毕竟谁也不想学一个没有市场的编程语言。
参考
https://www.tiobe.com/tiobe-index/
https://www.cnblogs.com/ityouknow/p/12096366.html
https://www.tiobe.com/company/about/
https://www.tiobe.com/tiobe-index/programming-languages-definition/