阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

2020 年 Java 语言发展现状

  • 2020-10-10
  • 本文字数:5022 字

    阅读完需:约 16 分钟

2020年Java语言发展现状

今年,Java 到达了一个不可思议的里程碑,达到了 25 岁的高龄。我们通过举办一个特别的在线Java日活动来庆祝它的诞生,在该活动中,许多专家演讲者分享了他们的经验,并就如何从这门语言中获得更多收益提供了技巧和窍门。


这引起了我们的思考,我们决定对数据进行深入研究,以彻底发现 Java 的普遍状态是什么,并帮助你回答一些亟待解决的问题。我们发现的某些内容可能是不足为奇的,但也有些见解是令人非常意想不到的。


随着 Java 15 在本周的发布,我们决定把它放在一起,向你展示 Java 的状态。这篇文章是根据不同来源的数据而创建的,其中包括我们的开发人员倡导者 Trisha Gee 的专家评论。

Java 开发者有多少,他们分布在哪里?

第一个问题是:“大多数的 Java 开发人员都在哪里,我们中有多少人是 Java 开发人员呢?”我们通过综合所能获取到的最准确的信息来回答这个问题,然后进行推断,得出一个我们认为非常合理的猜测。


市场研究和分析团队根据开发人员估算模型得出的最佳估计显示,当今世界上有大约 520 万专业 Java 开发人员,他们将 Java 作为主要语言。但是,如果我们将主要使用其他编程语言但同时也做一些 Java 工作的专业开发人员也包含在内的话,这个数字可能接近 680 万。


至于这些 Java 开发人员都集中在什么地方,在亚洲居住的 Java 开发人员数量最多,那里大约有 250 万开发人员使用 Java 作为主要语言。北美和欧洲的数字远不及亚洲。你可能会问:“为什么呢?”好吧,起初我们有也有同样的想法,因此我们对这些区域进行了更深入的研究,以确切地了解这些数字的来源。


哪个国家的 Java 开发者最多?

我们进一步研究了拥有最多 Java 开发人员的各个国家,然后调查了为什么这些国家在专业开发中特别喜欢 Java 而不是其他语言。


下图显示了每个国家使用 Java 作为主要语言的开发人员的百分比(用于收集此数据的调查对象最多可以选择 3 种主要语言)。中国韩国的数值最高,分别约为 51%和 50%。数据来自2020年开发者生态系统状况调查


专家分析


Java 在前 6 个国家如此流行的原因可能包括 Java 是免费使用的、政府支持和开源。对于中国、西班牙巴西尤其是这样。它是在中国和印度进行 Android 移动开发的基础,并且雇佣海外人员用 Java 开发手机应用程序非常普遍,这可能是印度使用量达到峰值的原因。德国的使用率也很高,这可以归因于 Java 在德国软件工程师中是最流行的语言,因为多种行业都使用 Java 来构建高度可扩展的应用程序。大多数企业服务都依靠 Java 来驱动应用程序支持日常业务的运行,例如工资单、库存管理、报表等。德国还有一个庞大的金融部门,在本国技术上大量使用 Java,例如交易机器人、零售银行系统以及金融业为了保持竞争所需要的其他应用程序。


我们本以为美国会有很高比例的 Java 用户,但是并没有,这也是很合理的。有大量的技术栈可供选择,而且很多技术公司通常处于这些技术栈的最前沿,因此那里的开发人员可能不需要 Java 的强大功能或稳定性,而是使用能让他们进行快速构建和测试等的语言。


Java 在开发行业中的位置

根据2020年开发者生态系统状况调查,有超过三分之一的专业开发人员将 Java 用作主要语言,而 Java 在专业开发人员当中仍然是仅次于 JavaScript 的第二大主要语言。


专家分析


看到 JavaScript 和 Java 处于领先地位,这并不奇怪,因为它们是成对的:使用 Java 的开发人员经常使用 JavaScript 编写前端和任意快速脚本。由于机器学习的普及,Python 可能排名第三。一般来说,我们希望 Web 成为开发人员生态系统的重要组成部分,因此 JavaScript、HTML 和 CSS 以及 PHP 将始终能拥有稳固的地位。 SQL 也会一直存在,因为没有多少东西是不需要某种容量的数据库的。 C++也是一种坚实的语言,因为它被用于许多嵌入式应用程序中,因此它不会很快在图表中消失。虽然 C#似乎正在逐渐衰落,但我想如果 Java 比例高,C#就会低,因为它们在功能上非常相似。至于为什么我认为 Java 在专业发展领域如此之高,原因与之前提到的德国类似。大多数企业的业务服务都依靠 Java 来运行。它不仅仅用于 IT 部门,几乎每个公司,无论是分销、制造还是银行业,都将 IT 服务作为其基础设施的一部分,而这些服务,如工资单或库存管理,通常都是在后端使用 Java 构建的。因此,Java 被这些公司的专业开发人员所大量使用。


用 Java 开发的软件类型

快速浏览一下用 Java 开发的软件类型,应该可以了解它的使用统计信息。根据2020年开发者生态系统状况调查的结果,Java 使用最流行的领域是 Web 服务,占 52%。


专家分析


看到 Java 在商业智能/数据科学/机器学习中如此流行,真令人惊讶,因为你可能认为这将是 Python 的领域。其他的就不足为奇了,因为 Web 服务的后端通常是 Java,而且使用 Java 编写业务应用程序也很有意义,因为它们也需要使用后端和数据库。


使用 Java 的热门行业

既然我们知道了为什么这么多专业开发人员使用 Java,那么让我们具体看看 Java 应用于哪些行业。


根据2020年开发者生态系统状况调查,Java 程序主要用于 IT 服务(42%)与金融和金融科技领域(44%),但这并不是说 Java 没有用于其他行业。


专家分析


金融和金融科技领域主要涉及金融交易所、零售银行系统、创建计算引擎以及开发本地定制工具和服务,以使公司在市场上具有竞争力。 金融和金融科技几乎都是用 Java 建立的,所以在这里没有什么好惊讶的。 IT 服务也是如此,因为许多针对非 IT 公司的薪资系统和库存管理服务都是基于 Java 构建的。其他行业也很有趣。由于 Android 的存在,移动开发的比例可能很高,因此 Java 正以这种方式被使用。大数据和数据分析也非常有趣,因为该行业是由 Python 主导的,但是后端可能会使用 Java 和 JVM 语言。当然构建软件开发工具也可以。 JetBrains IDE 目前是用 Java 构建的。尽管其他行业有点神秘,但实际上,了解 Java 在这些行业中的使用方式将非常有趣。


Java 相关工具

Java 版本

Java 8 仍然是最受欢迎的版本。在使用 Java 作为主要语言的专业开发人员当中,有 75%的人使用 Java 8。基于开发人员在2020年开发者生态系统状况调查中选择的几个版本,下图显示了 Java 版本的分布情况。


专家分析


有几个因素导致了 Java 8 的如此流行。首先,它拥有典型的 Java 开发人员所需要的所有语言,它具有 lambda 和流,并且它是一个很好的易于使用的版本。另外,人们一直不愿意迁移到 Java9。Java9 引入了一些重大的架构更改,人们担心这些更改会破坏他们用 Java 8 构建的应用程序。最重要的是,Oracle 还推出了每两年发布一次的版本,因此并不是所有版本都是长期受支持的,因此 Java 9、Java 10、Java 12 和 Java 13 仅受 6 个月的支持,这可能就是为什么它们都只有这么少用户的原因。 Java 13 之所以如此之高,是因为当本调查公布时,它是最新的版本,因此你可以预期,该数字将在几个月后下降。


Java 11 发布于 2018 年,它是长期受支持的最新版本。许多企业仍未迁移到它,因为他们担心超过 Java 9(由于其架构的更改)会破坏一切,而且 Java 11 引入了新的许可和新的订阅,因此它带来了一个新的恐惧:更担心如果使用了错误的版本,以错误的方式使用它,Oracle 会对你进行罚款。许多开发人员没有升级到 Java 11 的最后一个主要因素是,它没有很多令人兴奋的新功能,因此该语言的功能并没有降低升级的风险。 Java 17 将是下一个拥有长期支持的版本,并带有许多新功能,但是直接从 Java 8 升级到 Java 17 也会带来一些问题。


我的预测是,我认为下一个长期版本 Java 17 将比上一个 LTS(长期支持版本)Java 11 更受欢迎。不过,作为 Java 17 的准备,这一点我再强调也不为过,建议你先将代码库更新到 Java 11,然后再更新为 Java 17,以避免出现大问题。


流行的应用服务器

在过去的 3 年中,Apache Tomcat 仍然是最受欢迎的应用服务器,而 JBoss EAP 和 WildFly 的使用量却减少了一半。给出的数据来自参加2018年2020年开发者生态系统调查的所有以 Java 为主要语言的开发人员。


专家分析


Jetty 位居第二,但它确实低得令人惊讶。可能是某些正在使用 Spring Boot 和其他微服务框架的开发人员没有意识到他们到底在使用使用,他们可能在不知不觉中使用了 Tomcat 或 Jetty。


排名前 5 的 Web 框架

在2018年,Spring Boot 与 Spring MVC 是一样流行的,到了2020年,它变得更加流行。给出的数据来自所有使用 Java 作为主要语言的开发人员。


专家分析


这基本上只是在证实 Spring 拥有市场。几乎可以肯定的是,仍然有人在使用 Struts 1,但它只是用于遗留应用程序。


排名前 5 的分析器

2020年开发者生态系统状况调查显示,有 24%的用户使用 VisualVM,而一半的用户则没有使用。给出的数据来自所有使用 Java 作为主要语言的开发人员。


排名前 5 的 IDE/编辑器

2018年2020年的开发者生态系统调查显示,IntelliJ IDEA 的份额从 2018 年的 55%增加到 2020 年的 72%,而其他四个的使用率则有所下降。


专家分析


不过,即使我们对调查结果进行了加权,但我们并不否认这些信息可能会有些偏差,因为这是来自JetBrains开发者生态系统状态调查,而 JetBrains 的一个主要产品就是 IntelliJ IDEA。然而,这并不是说这并非完全不合理,就好像我们在其他调查中看到的一样,IntelliJ IDEA 通常是使用最多的 IDE 之一,并且通常拥有约 55-60%的用户份额。 VS Code 正在增长,这不是从竞争的角度来看的,而是从缺乏对 IDE 的理解的角度来看的。 VS Code 是一个代码编辑器,带有一些你可以在 IDE 中找到的特性,并且可以提供附加功能的扩展。因此,如果人们使用 VS Code 进行开发,则可能意味着开发人员不知道一个功能齐全的 IDE 能给他们什么。在 Web 领域,使用编辑器是可以理解的,因为 Web 开发人员通常使用动态语言,并且经常使用其他工具(例如浏览器插件)来满足他们的需求。但是在 Java 中,特别是在专业的 Java 中,你确实可以从一个与应用程序服务器集成的优秀工具中得到很多东西,你可以真正使用分析、重构等功能。


我们专家的最新消息


我发现有很多对本博客文章数据分析进行删减和编辑的版本,这是我无意间造成的混乱。我想澄清一下我对开发人员和 IDE 评论背后的意图。对我来说,如果开发人员不理解 IntelliJ IDEA 作为一个功能齐全的 IDE 给他们带来了什么,那对我来说就是一个失败,因为这六年来我的工作就是让开发人员了解 IDE(特别是 IntelliJ IDEA)能为你做什么。我强烈地认为,人们不应该因为不了解产品而责备用户或潜在用户。


我个人对 IDE 的观点来自拥有 20 多年 Java 开发经验的 Java 开发人员,他们开发过各种大大小小的 Java 项目。如果没有像 IntelliJ IDEA 这样的 IDE 提供大量的帮助,我无法想象如何创建一个复杂的企业应用程序。我也见过很多开发人员使用 VS Code,并且我完全了解代码编辑器所涵盖的用例。在你的工具箱中总有能容纳多于一种的工具,了解某个工具的优点将有助于我们为正确的工作选择合适的工具。


讨论最多的 Java 工具和其他语言

在 IT 社区中会经常讨论 Java,其中的一个社区就是 Stack Overflow。我们从“问答”部分中获取了数据,以找出哪些标签与“ java”最相关。纵轴表示提到 Java 的次数,横轴表示标签出现的总次数。


专家分析


对于那些希望确保自己使用了正确的技术或正寻找适合自己的工具的用户来说,这个图表可能很有用。这些语言很有意思,但这可能是因为人们正在寻找 Java 与其他语言之间的比较。正则表达式是人们苦苦挣扎的一个利基领域,但它能上榜也就不足为奇了。


Java 社区的热门话题

Java 的讨论

我们分析了 Reddit 上“ java”子版块的帖子,并发现了 Java 用户在 Reddit 上讨论最多的主题。


专家分析


这些正是我期望看到的话题。例如,用 Java 编写代码的人总是会对这种语言是否仍然有需求感兴趣,毕竟,这种语言还在发展。我们刚刚庆祝了 Java 诞生 25 周年,因此人们希望检查它是否过时了,以及它是否仍然有效。特别是,如果他们刚从大学毕业,还不知道他们所学的语言是否能为他们提供工作机会。在容器中部署 Java 是一个非常热门的话题,包括我在内,这是每个人都想知道的东西,但几乎找不到任何相关信息。我对性能优化这个主题并不感到惊讶,尽管我认为这个主题有点多余,因为大多数应用程序实际上并不需要开发人员来进行优化,尽管许多开发人员认为这是一项重要的职业技能。使后端和前端协同工作也非常复杂,我可以想到有很多关于这方面的问题。



原文链接:


https://blog.jetbrains.com/idea/2020/09/a-picture-of-java-in-2020/


2020-10-10 14:1810640
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 262.4 次阅读, 收获喜欢 1293 次。

关注

评论 6 条评论

发布
用户头像
原文在这里:https://blog.jetbrains.com/idea/2020/09/a-picture-of-java-in-2020/。Jetbrain自己的统计,使用最多的IDE数据估计有水分
2020-11-20 02:59
回复
用户头像
首张背景图放那么大虫子是什么意思 ???
2020-10-19 10:20
回复
就他bug最多
2020-11-13 10:37
回复
用户头像
stack overflow 的深翻页好快啊
2020-10-18 19:25
回复
用户头像
java就是一坨屎
2020-10-17 23:41
回复
用户头像
Java8还是很稳定的
2020-10-16 09:46
回复
没有更多了
发现更多内容

AI开发实践:关于停车场中车辆识别与跟踪

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 4 月 PK 榜 车辆检测

为何说低代码平台会提升软件开发效率?

这我可不懂

软件开发 低代码 JNPF

社区分享 | Orillusion 引擎入门系列 —— 如何创建一个简单的 3D 示例

Orillusion

WebGL 元宇宙 web3d #WebGPU #开源

不动产行业国产化加速,明源云上榜《中国信创500强》

科技热闻

Higress GitHub star 突破 1k,来自社区开发者和用户的寄语

阿里巴巴云原生

阿里云 云原生 Higress

关于验证码,你不知道的一些问题!

宙哈哈

php html 记录 验证码

算云融合促发展,天翼云以领先云网算力助推数字中国建设!

天翼云开发者社区

长安信托:拥抱数字信托,探索多项目管理新路径

万事ONES

autodesk maya 2023最新中文版 Maya动画和建模软件

魔仙苹果mac堡

Autodesk Maya maya破解版 玛雅2023下载

最新版本 Stable Diffusion 开源 AI 绘画工具之使用篇

极客飞兔

人工智能 图文生成 AI绘画 Stable Diffusion

Springfox与SpringDoc——swagger如何选择(SpringDoc入门)

天翼云开发者社区

5月上海线下 · CSM认证周末班【提前报名特惠】“全球金牌课程”CST导师亲授

ShineScrum捷行

基于 Nginx&Lua 实现自建服务端埋点系统

亚马逊云科技 (Amazon Web Services)

Amazon

软件测试/测试开发丨两个步骤轻松搞定测试环境问题

测试人

软件测试 自动化测试 测试开发

JetBrains CLion 2023中文版安装教程CLion 2023新功能

魔仙苹果mac堡

C/C++ CLion 2023 JetBrains CLion破解版

Ample Sound Ample Bass Upright III Mac(虚拟立式低音乐器)

魔仙苹果mac堡

MobTech MobLink|无码邀请是怎么处理的

MobTech袤博科技

喜讯!天翼云荣获国际AI顶会ABAW季军

天翼云开发者社区

Autodesk AutoCAD 2024 Mac(cad2024) v2024.3 支持M1 兼容Mac13系统

魔仙苹果mac堡

mac软件下载 M1芯片 cad2024激活版 Autodesk AutoCAD

联合解决方案|亚信科技AntDB携手蓝凌软件,助推企业数字化办公转型升级

亚信AntDB数据库

AntDB AntDB数据库 企业号 4 月 PK 榜

安全可信| 天翼云算力调度平台通过信通院首批可信算力云服务评估!

天翼云开发者社区

5月在线 · A-CSM认证周末班【提前报名特惠】“敏捷教练必修课程”CST导师亲授

ShineScrum捷行

建木在 Rainbond 上使用实践

北京好雨科技有限公司

云原生 CI/CD #Kubernetes# rainbond 企业号 4 月 PK 榜

解决Parallels Desktop 18.2.0提示“由于临界误差,不能启动虚拟机”的问题

魔仙苹果mac堡

Parallels Desktop 18 pd18虚拟机 PD虚拟机不能联网

SketchUp Pro(草图大师2023)中文版 Mac/win

魔仙苹果mac堡

SketchUp Pro 2023 SketchUp Pro中文版 草图大师2023下载

架构训练营模块二作业

请叫我馒头哥丶

架构实战营

GaussDB(DWS)云原生数仓技术解析

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

软件测试/测试开发丨通用 api 封装实战,带你深入理解 PO

测试人

软件测试 自动化测试 测试开发

大咖说丨云计算:数字世界的“中枢神经”

天翼云开发者社区

Excelize 入选 2022 中国开源创新大赛优秀项目

xuri

golang 开源 Go 语言 Excelize OOXML

AntDB数据库携超融合流式实时数仓亮相第25届中国高速公路信息技术化大会

亚信AntDB数据库

AntDB AntDB数据库 企业号 4 月 PK 榜

2020年Java语言发展现状_语言 & 开发_Valeriia Karpenko_InfoQ精选文章