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

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

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. STM32串口USART1的使用方法和程序

    通用同步异步收发器(USART)提供了一种灵活的方法来与使用工业标准NR 异步串行数据格式的外部设备之间进行全双工数据交换. USART利用分数波特率发生器提供宽范围的波特率选择,支持同步单向通信和半 ...

  2. linux to extract contents between patterns

    参考:http://stackoverflow.com/questions/19177721/extract-lines-between-two-patterns-from-a-lfile awk ' ...

  3. 利用select单线程点对点聊天

    select的优点与使用方法 select用单线程的方法遍历所有待读写的I/O接口, 当有接口可用时就会返回. select可设置电脑阻塞或非阻塞. 特别注意: 每次select前都要重新初始化集合和 ...

  4. C#后台获取根路径

    C#后台获取当前系统根路径: string absoluteurl = Context.Request.Url.AbsoluteUri.Replace(Context.Request.RawUrl, ...

  5. mysql中@ROW的使用

    一.从test02表中查询每个uid最早登录的前2天 表如下图所示: select * from (select uid,day, @ROW := END rn, @uuid:=uid from (s ...

  6. 基于vue2.0打造移动商城页面实践 vue实现商城购物车功能 基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果

    基于vue2.0打造移动商城页面实践 地址:https://www.jianshu.com/p/2129bc4d40e9 vue实现商城购物车功能 地址:http://www.jb51.net/art ...

  7. 百度分布式配置管理平台-Disconf

    Disconf介绍 全称:Distributed Configuration Management Platform,即分布式配置管理平台. Disconf专注于各种分布式系统配置管理的通用组件和通用 ...

  8. leetcode.图.207课程表-Java

    1. 具体题目 现在你总共有 n 门课需要选,记为 0 到 n-1.在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1].给定 ...

  9. 注册服务到服务中心(Consul)

    注册服务到服务中心(Consul) 添加POM文件中的依赖 在POM文件添加如下依赖: <dependency> <groupId>org.springframework.bo ...

  10. RabbitMQ 在 Win10 环境下的安装与配置

    1 RabbitMQ 环境配置 1.1 ErLang 下载安装     RabbitMQ 需要 ErLang 环境支持:首先下载 ErLang 并安装.     建议使用新版本,版本过低存在与 Rab ...