编程语言排名到底是哪来的?
又是周末,这应该是 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/
您的扫码关注,是对小编坚持原创的最大鼓励:)
编程语言排名到底是哪来的?相关推荐
- 2014 年编程语言排名,人人都爱 TypeScript
前几年(2012版,2013版) 的排名缺少了 Andrew Binstock 的栏目 --"编程语言的起伏".这个在去年在已经闭刊的 Dr.Dobb Journal 上发表过了( ...
- 计算机编程语言python-2018年计算机编程语言排名: Python语言排名第一
今天,IEEE Spectrum发布了第五版计算机编程语言交互排名第一: Python成功捍卫了它的头衔,C ++崭露头角,排名第二,而C和Java则"分别"跌至第三和第四. 两者 ...
- python平均工资-2020 10大薪资最高的IT编程语言排名
坊间流传一句俗语: 三百六十行,行行转IT. IT行业自2016年首次超过金融行业以后,一直到现在每年都是稳居高薪第1名的宝座. 本文盘点了2020 10大薪资最高的IT编程语言排名,看看是哪些编码技 ...
- python最新排名_最新编程语言排名:JS位列第一 Python超Java
Redmonk新一轮的编程语言排名出炉,从使用量上看,Python超越了Java跃居第二,JavaScript仍保持领头羊的位置. 统计中对使用量的计算拉取的是Github和Stack OverFlo ...
- 最新编程语言排名:Python超Java、JS保持领头羊
Redmonk新一轮的编程语言排名出炉,从使用量上看, Python超越了Java跃居第二, JavaScript 仍保持领头羊的位置. 统计中对使用量的计算拉取的是 Github 和Stack Ov ...
- github编程语言排名_这是每种主要编程语言的Hello World应用示例-全部在一个GitHub存储库中
github编程语言排名 One of the first things that you are instructed to do when you start to learn to progra ...
- 2020年6月TIOBE编程语言排名公布
原文:2020年6月TIOBE编程语言排名公布 2020年6月TIOBE指数 6月头条:Rust 首次进入TIOBE指数前20名 编程语言 Rust 诞生近 10 年后首次进入 TIOBE 指数前 2 ...
- rust编程语言排名_Rust语言在堆栈溢出调查中排名最高
rust编程语言排名 Rust在Stack Overflow的开发人员调查中连续第五年获得"最受欢迎的"编程语言的第一名,而Python从第二名滑落到第三名,仅次于TypeScri ...
- 计算机语言排名labview,编程语言排名
本词条缺少信息栏.概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! TIOBE 语言排名一个月更新一次.它的统计方法是基于全球有经验的工程师,科目和第三方厂商. 同时也参考来自googl ...
最新文章
- 从ReLU到GELU,一文概览神经网络的激活函数
- PAT天梯赛练习题——L3-005. 垃圾箱分布(暴力SPFA)
- php如何判断提交内容为空,php禁止提交空表单(php空值判断)的方法
- 无法定位程序输入点 inet_ntop 于动态链接库 WS2_32.dll上
- java学习(105):字符串indexof,spilt,substring方法
- mlock家族:锁定物理内存
- 南昌大学c语言大作业,南昌大学计算机C语言答案2
- 机器学习中的特征工程总结
- 运行VS编译的程序提示“由于应用程序配置不正确,应用程序未能启动”的问题
- 看懂Oracle执行计划
- Hard Link 与 Symbolic Link
- 尊重钟南山,但请也给我们哀悼科比
- JavaIO流,万物皆文件
- 如何从iTunes Store赠送音乐,电影等
- 记录一个使C/C++多线程无法加速计算的问题
- 奇遇MIX体验:加入全彩VST透视,开创消费级VR一体机新时代
- Android APP 启动时间测试
- Navicat连接mysql报错is not allowed to connect to this MySQL
- 计算机平面设计当下和未来发展,计算机在平面设计领域中的应用与未来发展方向...
- 微信小程序图片空白问题处理