做为一名程序员,都比较关注其使用编程语言的热度,一方面编程语言的热度决定了它拥有多大的市场,另一方面也关系到行业内程序员选择机会有多大。

我们总听说某个编程语言排名第一,那么这些数据到底准不准确呢?

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 指数排行中的原因。

②它应该具有图灵完整性(http://en.wikipedia.org/wiki/Turing_completeness),因此 XML 和 HTML 不能被计入其中,这个约束对数据查询语言 SQL 也是有效的,例如你无法使用 SQL 写出一个无限循环。换一方面来说,由 SQL 扩展出的 PL/SQL 和 Transact-SQL 属于编程语言的范畴。

③它对于格式为+" programming" 的关键词必须至少命中5000次.

另外那些相似的编程语言会被分配到一起,但目前为止,只会计算那些分组到一起的中搜索命中次数最高的那个,后期将考虑使用这些被分组在一起的编程语言的数学并集作为它们的搜索命中次数。

下面是多个编程语言被分成一个组的规则条件:

①如果语言有其自己的维基百科条目,则不会与其他语言分组。

②如果语言 A 自动重定向到另一个维基百科条目 B,则 A 将与 B 一起分组。

③如果语言 A 没有单独的维基百科条目,但作为另一个维基百科条目 B 的一部分提及,则 A 将与 B 一起分组。

5.年度编程语言

TIOBE每年还会评选出一门年度编程语言,表示该门语言在当年的排名中上升幅度最大。比如在 2018 年的时候 Python 就被评选为年度编程语言,我们从排行榜上也能看出 2018 年 Python 直接飙升到第三名。

历年的年度编程语言如下:

2018 Python

2017 C

2016 Go

2015 Java

2014 JavaScript

2013 Transact-SQL

2012 Objective-C

2011 Objective-C

2010 Python

2009 Go

2008 C

2007 Python

2006 Ruby

2005 Java

2004 PHP

2003 C++

6.最后

TIOBE只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好。所以如果你使用的编程语言没有排在前面也不要太沮丧,它并不代表使用的编程语言重要程度。

但是关注 TIOBE 编程语言排行榜也具有一定指导意义,做为编程领域内唯一具有权威性的排行榜,对我们选择编程语言时起到一个参考作用,毕竟谁也不想学一个没有市场的编程语言。

编程语言的热度也是市场的一种反应,比如 2015年 因为 Andriod 的大爆发,Java 成了年度编程语言;2018 年人工智能大热,Python 直接飙升到排名第三。

对于一名想要从事编程工作的小白来讲,选择编程语言时最好选择排名比较靠前的,这样不论是学习资料还是工作机会都相对比较多,后面发展的机会也相对多一点。

参考:
http://www.htmer.com/article/732.htm
https://www.shukaiming.com/article/55

TIOBE 编程语言排行榜是什么,它是如何计算编程语言排行的?的更多相关文章

  1. TIOBE 2015年7月编程语言排行榜:C++的复兴

    TIOBE 2015年7月编程语言排行榜:C++的复兴 发表于2015-07-13 17:03| 16086次阅读| 来源CSDN| 128 条评论| 作者钱曙光 编程语言排行榜TIOBEC++ 摘要 ...

  2. TIOBE 2015年5月编程语言排行榜 Visual Studio系列在上升

    TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员. 课程和第三方厂商的数量.排名使用著名的搜索引擎(诸如 Google.MSN.Yahoo ...

  3. 201907 TIOBE 编程语言排行榜-Python坐稳第三

    目录 一.编程语言7月排行榜 二.Top10编程语言指数走势(2002-2018) 三.历史排名(1988-2019) 四.编程语言"名人榜"( 2003-2018) 五.Top2 ...

  4. 【转载】编程语言排行榜2019年7月 TIOBE编程语言排行榜2019年最新版

    TIOBE在前段时间公布了编程语言排行榜2019年7月的数据,编程语言7月的排名有了新的变化,Python继教占领第三名,Java还是稳居第一,C++本月又降了0.91%.下面一起来看看2019年7月 ...

  5. TIOBE 2017 8月编程语言排行榜 后院“硝烟四起”

    处于排名榜最前面的几个编程语言的分数长期以来一直都在下降:Java和C在TIOBE榜单中的分数一直比较低.而且几乎所有其他排名前十的语言每年都在下降. 那么哪个什么语言抓住了这个机遇呢?这发生在排行榜 ...

  6. 2018年10月份编程语言排行榜(来自TIOBE Index for October 2018)

    TIOBE Index for October 2018 from:https://www.tiobe.com/tiobe-index// October Headline: Swift is kno ...

  7. 这里有40条提升编程技能小妙招!还有TIOBE 7月份的编程语言排行榜

    如何提高编程技能?恐怕很多开发者思考过这个问题.最近,拥有将近 15 年开发经验的软件工程师 Kesk -*- 写了一篇博客,列举了 40 条对其职业生涯有所帮助的事项.   或许,通过以下 40 个 ...

  8. TIOBE 编程语言排行榜

    https://www.tiobe.com/tiobe-index/ TIOBE 编程语言排行榜是编程语言流行趋势的一个指标

  9. 大事件,Java被超越了,2021年5月TIOBE编程语言排行榜出炉

    TIOBE 头条 TIOBE 5月编程语言排行榜新鲜出炉.前十榜单中,C.Python.Java三大鳌头仍占据前三榜单.去年11月,Python短时间的挤掉Java跃居至榜单第二名:今年5月,Pyth ...

随机推荐

  1. 【Angular】No component factory found for ×××.

    报错现象: 用modal打开某个组件页面时报错 报错:No component factory found for UpdateAuthWindowComponent. Did you add it ...

  2. mybatis 学习视频总结记录

    学习mybaits简单增删改查例子记录 此整理是学习视频后的视频内容整理,后半段还没有整理 网易云课堂 SSM高级整合视频 地址 : http://study.163.com/course/cours ...

  3. js中浅谈this对象(未补充完整)

    什么是this? 1.javascript语言中,一切皆为对象(除了 undefined 和 null 之外),运行环境也是对象,所以函数都是在某个对象之中运行,this就是这个对象(环境). 2.t ...

  4. MySQL开启SSL认证,以及简单优化

    1.1 MySQL开启SSL认证 #生成一个 CA 私钥 [root@db01 ssl]# openssl genrsa 2048 > ca-key.pem Generating RSA pri ...

  5. Redis 系列(02)数据结构

    目录 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 1.2 数据结构 1.3 Redis数据存储结构 2. Hash 2.1 基本操作 2.2 数据结构 ...

  6. TP框架的模板路径问题以及常用的模板常量的定义

    在TP框架中,为了各个模块加载静态文件方便,往往是不需要按照默认的方式放置静态文件到/app/模块名/VIEWS/下面,而是在顶级目录下创建一个新的目录(比如说./tpl目录下),来存放静态文件   ...

  7. 配置访问公网主机上的jupyter notebook

    文章结构: 一.安装python 二.安装并配置jupyter并配置jupyter 三.第一个python程序 一.安装python 1.1下载python安装包 # wget https://www ...

  8. Add a system call on Ubuntu 13.04(x64) with x86_64

    We added a system call to modify idt table, then programed it in modify_idt.c 1. Put our modify_idt. ...

  9. nginx之域名重定向

    一般网站默认的访问端口为80,当多个域名指向同一个服务器IP时,可以nginx进行重定向,分别指向不同的目的地址或其他主机. 在nginx目录下的conf/vhost子目录下建两个conf文件,hos ...

  10. vuex存取数据展示在table里-----第一次实现

    之前也看了vuex的文档,对它的原理只是了解,看代码(仅自己复习.做笔记) 流程是在组件的created中提交dispatch,然后通过action调用一个封装好的axios然后再触发mutation ...