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

TIOBE 1 月编程语言排行榜:C 语言再度「C 位」出道!

整理 | 屠敏

来源 | CSDN(ID:CSDNnews)

在 2020 年初雪来临之际,TIOBE 官方在最新发布的 1 月编程语言榜单中为我们最终揭开了「 2019 年度编程语言」的神秘面纱,然意料之外情理之中,获此殊荣的并非是风风火火吵闹了一年又一年的 Python,而是一位低调的老兵——C 语言。

01 Python 惜败,C 成为 2019 年度编程语言

曾几何时,凭借着“人生苦短,我用 Python”的 Slogan,Python 以干净的语法、较高的开发效率、若干实用的库等优势横行大数据分析、Web、人工智能等领域。在众人的认知中,继去年 Python 夺冠之后,Python 极有可能连续第二年获得 TIOBE 的年度编程语言,但最终为什么会被“截胡”?而为什么又是 C 语言。

在此,针对 C 语言仍然很热门这一点,TIOBE 官方解释道,该趋势背后的主要驱动力是物联网(IoT)和当今大量发布的小型智能设备。

众所周知,万物互联时代,智慧城市、智能家居、智慧人居等依托于 IoT 技术的领域逐步被推向风口,在各大科技公司纷纷加快数字化转型的进程中,这些场景也成为创业型企业纷涌而至的方向。而想要为用户提供高性能的场景支撑,作为基础设施工具 C 语言无疑为最佳的选择之一。从性能来看,C 的应用可有效提升小型设备的性能。从语言自身来看,其不仅容易学习,且每个处理器都有一个 C 编译器。

因此,凭借着 2.4% 的年增长率获得了年度编程语言奖项的 C,也算是实至名归。

除此之外,根据 TIOBE 数据统计,C# 以年增长率 2.1% 排名第二位;Python 排名第三,增长率为 1.4%;第四名为 Swift(+0.6%)。

02 Swift 成为 Top 10 的常客

除了以上,在本月榜单中,还有一些值得我们关注的地方:

  • Swift 语言从 #15 上升到了第 9 名;

  • Ruby 从第 18 名上升到了第 11 名。

基于以上两种编程语言,如今成为苹果开发核心编程语言之一的 Swift,已成为 Top 10 中的常客。此外,TIOBE 也做了预测,面向对象编程语言 Ruby 也将在不久的将来也会是其中一员,值得期待。

03 其他编程语言排名

时光交错,技术更迭。有些编程语言的流行背后,注定有些编程语言走进了平缓期。其中:

  • 极具安全性的编程语言 Rust 上升了 3 个位置,从第 33 名到第 30 名;

  • 在 2017 年,被 Google 宣布成为 Android 一级开发语言的 Kotlin,从第 31 名下降至 35;

  • Julia 降幅较大,从第 37 位下降到了 47名;

  • TypeScript 仅从 49 上升到了 48 名。

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

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

  • (Visual) FoxPro, 4th Dimension/4D, ABC, Alice, Apex, Awk, Bash, bc, Bourne shell, C++/CLI, CL (OS/400), Clojure, CoffeeScript, Common Lisp, Crystal, cT, Elixir, Emacs Lisp, Erlang, Forth, Hack, Icon, Inform, Io, Korn shell, Ladder Logic, Limbo, Maple, Mercury, MQL4, NATURAL, OpenCL, Oz, PostScript, PowerShell, Programming Without Coding Technology, Pure Data, Q, Raku, Red, Ring, S, Smalltalk, SPARK, Standard ML, VBScript, VHDL, WebAssembly, XBase++, Z shell

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

05 历史排名(1998-2019)

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

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

【说明】

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

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

详细榜单信息可参考 TIOBE 官网:

https://www.tiobe.com/tiobe-index

下面小编给你推荐几本C语言程序设计的书籍,

趁着春节假期,赶紧给自己充充电!

《数据结构与算法分析 C语言描述(原书第2版)典藏版》

推荐语:本书详细介绍了数据结构(大量数据的组织方法)以及算法分析(算法运行时间的估算)。帮助程序设计人员学习良好的程序设计技巧和提高算法分析能力,从而开发出具有最高效率的程序。

《C程序设计语言(原书第2版·新版)典藏版》

推荐语:本书是C语言发明者对自己发明的完美诠释!全面、系统地讲述了C语言的各个特性及程序设计的基本方法。对于计算机从业人员来说,本书是一本必读的程序设计语言的参考书。

《C程序设计语言(原书第2版.新版)习题解答(典藏版)》

推荐语:本书是对Brian W.Kernighan和Dennis M.Ritchie所著的《C程序设计语言(第2版·新版)》所有练习题的解答,是极佳的编程实战辅导书。这本与之配套的习题解答将帮助您更加深入地理解C语言并掌握良好的C语言编程技能。

《C编程技巧:117个问题解决方案示例》

推荐语:本书包含了适合从初级到高级的各种读者的大量C语言技巧。按照“问题-解决方案”的体例编写,以便你可以快速找到所需问题的解决方案。本书每个解决方案都附带适当的代码和对该代码的简要讨论,力求在C的理论和实践之间取得完美的平衡。

你与世界

只差一个

公众号

相关文章:

  • 新书推荐 | 数据流机器学习:MOA实例
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • 2020大风口!什么是图神经网络?有什么用?终于有人讲明白了
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • 机器学习入门必读:6种简单实用算法及学习曲线、思维导图
  • 什么是折线图?怎样用Python绘制?怎么用?终于有人讲明白了
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • 小程序三周年:超8000亿交易额,商业生态正当时
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • 新手学Python, 如何从入门到入土变为从入门到快速上车?
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • 沿用70多年的经典数据可视化方法,如何用Python实现?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • 学AI哪家强?2019全球排行清华第1,北大第2
  • Android 控件背景颜色处理
  • Android开源项目规范总结
  • Angular 4.x 动态创建组件
  • CentOS7简单部署NFS
  • Docker 笔记(2):Dockerfile
  • flutter的key在widget list的作用以及必要性
  • JavaScript 基础知识 - 入门篇(一)
  • java第三方包学习之lombok
  • Java读取Properties文件的六种方法
  • Java知识点总结(JavaIO-打印流)
  • Kibana配置logstash,报表一体化
  • KMP算法及优化
  • leetcode386. Lexicographical Numbers
  • Lsb图片隐写
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python socket服务器端、客户端传送信息
  • Python 基础起步 (十) 什么叫函数?
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Webpack 4x 之路 ( 四 )
  • 初识 beanstalkd
  • 聊聊sentinel的DegradeSlot
  • 应用生命周期终极 DevOps 工具包
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • #预处理和函数的对比以及条件编译
  • %check_box% in rails :coditions={:has_many , :through}
  • (39)STM32——FLASH闪存
  • (python)数据结构---字典
  • (二)springcloud实战之config配置中心
  • (一)基于IDEA的JAVA基础1
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .equals()到底是什么意思?
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .Net 应用中使用dot trace进行性能诊断
  • .net生成的类,跨工程调用显示注释
  • @ConditionalOnProperty注解使用说明
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • []T 还是 []*T, 这是一个问题
  • [BeginCTF]真龙之力