当前位置: 首页 > news >正文

TIOBE 9 月编程语言:C++ 突起、Java 流行度下降


整理 | 郑丽媛

出品 | CSDN(ID:CSDNnews)

编程语言社区 TIOBE 最新发布了 9 月编程语言排行榜。

自从今年5月被C语言超越后,Java就一直位列第2,久久无法突破,市场份额也在逐月降低,本月的市场占比相较去年,降幅甚至高达-3.18%。

与之形成鲜明对比的是,在本月 TIOBE Top 20 榜单中,C++以1.48%的增幅重回开发者视野中。其实早在2003年,C++就已是真正的赢家。它在2003年8月达到17.53%的峰值,接近第二名,并获得2003年年度编程语言称号。

不过,自2005年之后,C++市场份额一降再降,甚至再也没有达到10%。在2017年,C++走向历史最低值,占比4.55%。如今随着C++ 20最新标准的逐渐完善,TIOBE CEO Paul Jansen表示,与去年相比,C++现在是增长最快的语言。

C++20(C++ 编程语言标准 2020 版)是 C++语言一次非常重大的更新,为这门语言引入大量新特性。 C++20 新增的四大特性(概念、范围、协程和模块)完善了许多之前的不足,使开发者拥有更好的开发体验。

除了以上,8-20名也有些许的变化:

  • PHP超越R语言上升1位,变为第8名;

  • Classic Visual Basic跌出TOP 20,Dart进入TOP 20;

  • Rust由第20名上升2个名次,成为第18名。


其他编程语言排名

下面列出了完整的 21-50 名,因为是非官方发布的,所以可能存在遗漏:

第 51-100 名如下,由于它们之间的数值差异较小,仅以文本形式列出(按字母排序):

(Visual) FoxPro, ABC, ActionScript, Alice, Arc, Awk, bc, Bourne shell, C shell, CL (OS/400), CoffeeScript, Crystal, cT, Elixir, Emacs Lisp, Erlang, F#, Factor, Forth, Icon, IDL, Inform, Io, Korn shell, Ladder Logic, Limbo, Lingo, Maple, MEL, Mercury, ML, NATURAL, OpenCL, Oz, PostScript, Pure Data, Q, Raku, Ring, RPG, Snap!, SPARK, SPSS, Standard ML, Stata, Tcl, Tex, Vala/Genie, Verilog, VHDL


Top 10 编程语言 TIOBE 指数走势(2002-2020)

 


历史排名(1985-2020)

注:以下排名位次取决于 12 个月的平均值。

编程语言“名人榜”(2003-2019)

 

【说明】

TIOBE 编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于全球技术工程师、课程和第三方供应商的数量,其中包括了流行的搜索引擎以及技术社区,如 Google、百度、维基百科、CSDN、必应、Hao 123 等等。具体的计算方式详见:https://www.tiobe.com/tiobe-index/programming-languages-definition/。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

这个排行榜可以用来考查你的编程技能是否与时俱进,也可以在开发新系统时作为一个语言选择依据。

详细榜单信息可参考 TIOBE 官网:https://www.tiobe.com/tiobe-index

RECOMMEND

推荐阅读

01

《C++程序设计语言(第1~3部分)(原书第4版)

C++程序设计语言(第4部分:标准库)(原书第4版)

C++语言之父的经典名著

作者: (美)本贾尼·斯特劳斯特鲁普 (Bjarne Stroustrup)

译者:王刚 杨巨峰

推荐理由:本书是在C++语言和程序设计领域具有深远影响、畅销不衰的经典著作,由C++语言的设计者和最初的实现者Bjarne Stroustrup编写,对C++语言进行了最全面、最权威的论述,覆盖标准C++以及由C++所支持的关键编程技术和设计技术。本书英文原版一经面世,即引起业内人士的高度评价和热烈欢迎,先后被翻译成德、希、匈、西、荷、法、日、俄、中、韩等近20种语言,数以百万计的程序员从中获益,是无可取代的C++经典力作。

02

《C++程序设计:原理与实践(基础篇)(原书第2版)

  

作者:[美] 本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup)

译者:任明明 王刚 李忠伟 刘晓光

推荐理由:将经典程序设计思想与C++开发实践完美结合,全面地介绍了程序设计基本原理,包括基本概念、设计和编程技术、语言特性以及标准库等,教你学会如何编写具有输入、输出、计算以及简单图形显示等功能的程序。此外,本书通过对C++思想和历史的讨论、对经典实例(如矩阵运算、文本处理、测试以及嵌入式系统程序设计)的展示,以及对C语言的简单描述,为你呈现了一幅程序设计的全景图。

03

《C++编程思想(两卷合订本)》

作者:(美)Bruce Eckel, Chuck Allison 

译者:刘宗田 袁兆山 潘秋菱 刁成嘉

推荐理由:《C++编程思想》荣获《软件开发》杂志评选的Jolt生产力大奖。本书是《C++编程思想》两卷的汇总。第1卷是在第1版的基础上进行了更加深入分析和修改后的第2版,其内容、讲授方法、选用实例以及配套的练习别具特色,可以供不同程度的读者选择阅读。第2卷介绍了C++实用的编程技术和最佳的实践方法,深入探究了异常处理方法和异常安全设计;介绍C++的字符串、输入输出流的现代用法;解释多重继承问题的难点,描述了典型的设计模式及其实现,特别介绍了多线程处理编程技术。

04

《C++面向对象程序设计

作者:[美]贝赫鲁兹·A. 佛罗赞(Behrouz A.Forouzan) 

理查德·F. 吉尔伯格(Richard F. Gilberg)  

译者:江红 余青松 余靖 

推荐理由:本书使用C++语言介绍面向对象程序设计。通过学习C++语言的语法以及数据结构、标准模板库(STL)等高级概念,帮助读者掌握面向对象编程的相关内容。全书篇章结构精良、组织有序、概念清晰、代码规范,既适合作为第一门程序设计课程的教材,也适合编程初学者参考。

05

《Big C++中文版(原书第3版)

作者:[美] 凯·霍斯特曼(Cay Horstmann)

译者:姚爱红 林明宇 田啸天 李玉坤

推荐理由:本书由经典畅销书籍《Java核心技术》的作者Cay Horstmann撰写,非常适合C++初学者和爱好者阅读,不仅能够帮助新手快速入门,掌握基础知识,而且有益于培养读者解决实际问题的思维和能力。

06

《C++语言导学(原书第2版)

作者:[美]本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup) 

译者:王刚  

推荐理由:在本书中,C++的创造者本贾尼•斯特劳斯特鲁普描述了现代C++语言的构成。这本简洁、自成体系的导引书籍包含了C++语言大多数主要特性和标准库组件。本书通过介绍编程风格(例如面向对象编程和泛型编程)引出支持它们的C++特性。从基本特性开始,延伸到更宽范的进阶主题,包括很多C++17新特性,例如移动语义、一致初始化、lambda表达式、改进的容器、随机数以及并发。本书非常全面,甚至包含一些为C++20提出的扩展,例如概念和模块。本书最后讨论了C++语言的设计和演化。

07

《C++程序设计:基础、编程抽象与算法策略

作者:[美]埃里克 S. 罗伯茨(Eric S. Roberts)

译者:李雁妮 等

推荐理由:面向C++语言的初学者,从内容安排到讲授都遵循化繁为简、通俗易懂的特色,并安排大量案例,理论联系实际,使读者轻松进入C++编程的大门。 突出C++语言的特点,以面向对象概念和编程抽象为核心,使读者了解并掌握优秀软件开发人员应具备的编程思维与实践能力。努力跨越传统的程序设计语法与算法策略之间的鸿沟,通过独具匠心的内容安排,将数据结构、算法的相关内容与语法基础巧妙结合,将众多经典、实用的算法策略传授给读者,为后续课程或读者的深入学习奠定基础。

08

《C++代码整洁之道:C++17可持续软件开发模式实践

 

作者:[德] 斯蒂芬·罗斯(Stephan Roth)

译者:连少华、郭发阳、陈涛 

推荐理由:本书致力于讲述C++整洁代码之道!如果你熟悉C++语言的基本概念,想让自己写的代码更加整洁,那么这本书适合你阅读。本书为了帮助C++程序员提高技能水平,并举例说明如何编写易于理解的、灵活的、可维护的和高效的C++代码。

更多精彩回顾

书讯 |9月书讯(下)| 开学季,读新书

书讯 |9月书讯(上)| 开学季,读新书

上新 | 学习就像一场旅行,12天带你玩转Flutter之旅
书单 | 开学季——想打好数学基础?这些经典教材你最需要!

干货 | 漫谈“数据仓库演进史”

收藏 | 万字长文的Redis五种数据结构详解(理论+实战)| 建议收藏

视频 | 4min视频带你了解阿里B2B电商算法

赠书 |【第20期】实践深度学习?先接住这三板斧再说

相关文章:

  • 数字化转型新视角:从国家和行业角度看数字化转型
  • ​用户画像从0到100的构建思路
  • 更新!更薄!更精华:《JavaScript编程精解》来了
  • 吐血整理:盘点19种大数据处理的典型工具
  • 前端工程师不可不知的Nginx知识
  • 基于大数据的用户画像构建小百科全书
  • 要马儿跑,又要马儿不吃草?聊聊联邦学习与分布式机器学习
  • 太忙没空去看湖景?来看阿里云DLA如何快速构建数据湖
  • 【第21期】以实际项目作驱动,换种方式学Java
  • 确定了!图灵奖得主John Hennessy将来CNCC 2020做特邀报告!
  • Webpack优化——将你的构建效率提速翻倍
  • 用 Python 画哆啦 A 梦
  • 红帽资深解决方案架构师魏新宇:云原生应用构建之路
  • 为什么Spark能成为最火的大数据计算引擎?它是怎样工作的?
  • 主题沙龙 | 订阅模式和SaaS 行业的未来
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • FineReport中如何实现自动滚屏效果
  • Java 内存分配及垃圾回收机制初探
  • Java的Interrupt与线程中断
  • js ES6 求数组的交集,并集,还有差集
  • Making An Indicator With Pure CSS
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • Nodejs和JavaWeb协助开发
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • Protobuf3语言指南
  • session共享问题解决方案
  • SSH 免密登录
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 闭包--闭包作用之保存(一)
  • 第十八天-企业应用架构模式-基本模式
  • 模型微调
  • 七牛云假注销小指南
  • 事件委托的小应用
  • 探索 JS 中的模块化
  • 一个项目push到多个远程Git仓库
  • HanLP分词命名实体提取详解
  • 正则表达式-基础知识Review
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​如何在iOS手机上查看应用日志
  • #WEB前端(HTML属性)
  • ()、[]、{}、(())、[[]]命令替换
  • (2015)JS ES6 必知的十个 特性
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (poj1.2.1)1970(筛选法模拟)
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (黑马C++)L06 重载与继承
  • (三) diretfbrc详解
  • (实战篇)如何缓存数据
  • (一)RocketMQ初步认识
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑