Java地位不保?C卷土重来?三大榜单数据为你解读2020上半年语言大趋势

简介: 2020已经临近过半了,一些权威的编程语言数据统计网站,在每个月都会更新各大编程语言在全世界范围内的流行趋势。今天阿里妹为你整理了三大权威榜单在2020年上半年的编程语言排名情况,看看你pick的语言都有哪些有趣的变化吧

2020已经临近过半了,一些权威的编程语言数据统计网站,在每个月都会更新各大编程语言在全世界范围内的流行趋势。今天阿里妹为你整理了三大权威榜单在2020年上半年的编程语言排名情况,看看你pick的语言都有哪些有趣的变化吧!

一、RedMonk 2020上半年排行状况

RedMonk是半年更新一次的榜单,它基于某语言在GitHub上的项目数量。和在Stack Overflow的标签出现次数来统计,而这两个社区也是开源和技术讨论的权威数据源。

image.png

这是2020年的第一季度:

image.png

下面来看看RedMonk 2020年1月,2019年6月和1月的编程语言排行榜前20名:

image.png

在榜单中,各语言总体排名依然稳定,有趣的是,大部分名次紧挨着的语言都小小地调换了次序。
另外,2020年1月的榜单中出现了许多排名并列的现象。接下来具体看看一些值得关注的点:

1.2020年Python发展势头良好,排名较之前上升一位,甚至挤进前二,与Java并驾齐驱;
2.TypeScript 在去年 6 月份的榜单中进入前十,也成为五年来首度打破前十排名的语言。这次,TypeScript 上升至第九位,与 C 语言并列。可见,TypeScript 进入前十并非意外,它与 JavaScript 的组合可以说是成功的;
3.R语言令人惊喜,从此前的15位跃升至13位,与Scala并列;
4.Rust 目前的发展势头明显放缓,这次仍维持在21名。

二、TIOBE 2020上半年排行状况

TIOBE可能是开发者们最熟悉和最权威的编程语言排行榜之一了,它每个月都会更新,数据来源全面,能准确地反映各类语言的热门程度。

image.png

在2020年伊始,TIOBE官方为我们揭晓了“2019年度编程语言”的获得者,不少人认为 Python 会蝉联TIOBE 的年度编程语言,毕竟它的火热程度在近几年是有目共睹的,然而获此殊荣的是C 语言这位老将。
十分低调的 C 语言为何如此热门?TIOBE 认为这种趋势背后的主要驱动力是物联网(IoT)和当今发布的大量小型智能设备。当将 C 应用于对性能至关重要的小型设备时,它的表现会十分出色。另外,C 语言也比较容易学习,并且每个处理器都有一个 C 编译器。

以下是TIOBE 2020年上半年榜单TOP 20:

image.png
image.png

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

image.png

1月份排行中的亮点:
(1)Swift从第15名跃升至第9名,进入前十。
(2)Ruby从第18名上升到第11名,差点进入前十榜单,相信这一目标很快就会实现。

2月份排行中的亮点:
(1)2月份C语言的涨幅较大,达到了0.993%,1月刚刚拿下19年年度编程语言的大奖,真可谓是后劲十足。
(2)意料之中的是Java依然稳居第一,所以大家仍然可以把Java作为重点编程语言来储备掌握,随后分别是C、Python、C++、C#。

3月份排行中的亮点:
(1)C语言不愧是年度编程语言,3月以3.03%的年增长率继续大幅领先。年增长率较高的还有Java(2.90%)、C#(2.95%)和Python(1.85%)。
(2)整体上来看,排名前10的语言基本都稳定如常。本月冲出了Go 语言这匹黑马,一路挤进前十。去年同期,Go排在第18位,前两个月的榜单中,Go上升到第14位,然后持续爬升,终于在3月进入前十。
(3)3月最值得关注的语言是Delphi,比较令人意外:Delphi即将跌出TIOBE指数前20名。这大概是 Delphi最终没落的迹象。自2001年6月TIOBE指数存在以来,Delphi一直位居前20名,在2000年代初,它是最流行的语言和IDE之一。TIOBE认为,导致 Delphi没落的另一个主要原因是它的发行频率太低。原先每年都有一个主要版本,而2018年之后,Delphi却没有了什么新的动静。

4月份排行中的亮点:
(1)4月值得注意的是,C语言指数直逼Java,仅相差0.01%。
(2)Scratch进入了前20名,成为本月一大看点,这是一门少儿编程语言。许多人对于这门旨在教孩子如何编程的语言取得这样的成绩,感到无比惊讶,那是因为这些人没有注意到在Scratch中总共有超过5000万个项目被“写”出来,并且每个月都有100万个新的Scratch项目被添加进来,如果考虑这些,你就不会对Scratch挤进前20感到奇怪了。

5月份排行中的亮点:
(1)5月最大的亮点是 C 语言超越 Java,重返第一的位置。C 语言上一次排名第一,还是在 2015 年。那么是什么让 C 重新拿下第一的宝座呢?TIOBE CEO Paul Jansen 猜测是受冠状病毒的影响,“这听起来可能很愚蠢,但是某些编程语言确实可以从这种情况中受益。”
(2)数据科学语言 R 稳定在前十,MATLAB 从上个月的 18 位上升至本月的第 13 名,是前 20 名中月度排名上升最多的语言。
(3)4月份的榜单主角 Scratch 在5月继续上升一位,看来近期少儿编程的热度持续不减。
(4)近几个月比较令人担心的 Objective-C 排名仍在往下掉,本次在前 20 榜单中位次最末。

三、PYPL 2020上半年排行状况

Pypl编程语言排行榜是通过分析在谷歌上搜索语言教程的频率而创建的,搜索的语言教程越多就越受欢迎。

2020年5月编程语言排行榜:

image.png

排名前五的分别是:Python, Java, Javascript, C# 和 PHP,和上月相比,python(+4.3%)还是稳坐第一,并且大幅度领先于Java(-2.4%),前五名中除了 Python,其余的 Trend 指数都呈现出了下降趋势。
而近年来备受关注和欢迎的 Go、Kotlin、Rust、TypeScript 这些较为新兴的编程语言基本都保持着上升的热度,这也和我们所看到和了解到的情况吻合。

小结:
1.以上排行榜并不代表语言的好坏,开发者可以使用该榜单检查自身的编程技能是否需要更新,同时结合自己的实际情况选定自己的学习目标。
2.如果就后端语言来说,Java和Python一直是比较流行的语言。
3.一个合格的程序员是要会C语言的,不过真正必须用到C语言的领域主要是嵌入式开发和操作系统等偏底层的开发。
4.Python是过去五年来人气不断上升的唯一语言,如果你想在 2020 年只学习一门编程语言,并希望涵盖更广泛的APP开发领域,不妨考虑 Python。

相关文章
|
6天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
27天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
37 6
|
26天前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
80 3
|
27天前
|
存储 Java 数据处理
Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位
【10月更文挑战第16天】Java Set接口凭借其独特的“不重复”特性,在集合框架中占据重要地位。本文通过快速去重和高效查找两个案例,展示了Set如何简化数据处理流程,提升代码效率。使用HashSet可轻松实现数据去重,而contains方法则提供了快速查找的功能,彰显了Set在处理大量数据时的优势。
32 2
|
7天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
19 2
|
7天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
15 2
|
9天前
|
SQL 安全 Java
安全问题已经成为软件开发中不可忽视的重要议题。对于使用Java语言开发的应用程序来说,安全性更是至关重要
在当今网络环境下,Java应用的安全性至关重要。本文深入探讨了Java安全编程的最佳实践,包括代码审查、输入验证、输出编码、访问控制和加密技术等,帮助开发者构建安全可靠的应用。通过掌握相关技术和工具,开发者可以有效防范安全威胁,确保应用的安全性。
22 4
|
11天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
32 2
|
17天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
35 2
|
22天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。