作者 | Valeriia Karpenko

译者 | 弯月

出品 | 程序人生(ID:coder_life)

今年,Java 迎来了25周年,而这门编程语言的发展也达到了一个新高度。Java举办了一次特殊的在线活动来庆祝周年,活动期间许多专家演讲分享了他们的经验,并介绍了有关如何掌握该编程语言的技巧和窍门。

文本深入地研究了多方面的数据,总结了 Java 目前的发展状况以及来自专家  Trisha Gee 的分析。

地域

第一个问题是:“Java 开发人员主要聚集在哪些区域,以及全世界有多少 Java 开发人员?”我们分析了最准确的信息,并进行总结和推断后得出了以下结论。

根据市场研究及开发团队的分析模型估计,目前全世界大约有 520 万以 Java 为主要编程语言的专业开发人员。如果再加上主要使用其他编程语言,但同时也使用 Java 的专业开发人员的话,那么这个数字接近 680 万。

从地域来看,居住在亚洲的 Java 开发人员数量最多,大约有 250 万开发人员以 Java 为主要编程语言。北美和欧洲的人数远不及亚洲。你可能会好奇:“但这是为什么?”其实,我们开始也这么想,所以我们对这些区域进行了更深入的研究,以确切地了解数字的来源。

具体的地域

我们更深入地研究了 Java 开发人员数量居榜首的各个国家,然后调查了为什么这些国家开发人员对 Java 的喜爱超过了其它编程语言。

下图显示了各个国家/地区以 Java 作为主要编程语言的开发人员所占的百分比(收集此数据时,受访者最多可以选择三种主要编程语言)。其中,中国和韩国开发人员所占的百分比最高,分别约为 51% 和 50%。

专家分析 

Java 在前 6 个国家中如此流行的原因可能包括 Java 的免费使用、政府支持和开源等。在中国、西班牙和巴西尤其如此。在中国和印度,Java 是 Android 移动开发的基础,而且外包开发人员使用 Java 构建移动应用的情况非常普遍,这可能是印度使用 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++,所以近期内它都不会消失。

另一方面,C# 似乎呈现出逐渐衰落的趋势,我认为如果 Java 的使用率偏高,那么 C# 就会走低,因为二者在功能方面都非常相似。至于我为什么认为 Java 的使用在专业发展领域如此之高的原因与上述分析德国的原因类似。大多数企业业务服务都需要依赖 Java。

不仅是 IT 部门,几乎每个公司,无论是在分销、制造还是银行业,都将IT服务作为其基础设施的一部分,而这些服务(例如薪资或库存管理)的后端通常都是使用 Java 构建的。因此,为这些公司工作的专业开发人员经常使用 Java。

使用Java开发的软件类型 

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

专家分析

出人意料的是,Java 在商业智能/数据科学/机器学习中如此流行,因为通常我们认为这些是 Python 的领域。很多 Web 服务的后端一般都是用 Java,因此这个结果也不是特别意外,其实使用 Java 编写业务应用程序也合情合理,因为它们也需要与后端和数据库的配合。

使用Java的热门行业 

以上,我们知道了为什么许多专业开发人员都使用 Java,下面我们来专门研究一下使用 Java 的热门行业。

根据2020年开发人员生态系统状况调查,Java程序员主要从事IT服务(42%)和金融与金融科技(44%),但这不是说其它行业不使用 Java。

专家分析

金融和金融科技领域主要涉及金融交易所、零售银行系统、建立计算引擎以及开发本地定制工具和服务,以加强公司在市场上的竞争力。金融和金融科技几乎都是使用 Java 建立的,因此有这样的统计结果也不足为奇。其它 IT 服务也一样,许多非 IT 公司的薪资系统和库存管理服务都是使用 Java 建立的。

不过其他行业的数据更有趣。移动开发领域占的比例很高,因为需要用到 Android, Java自然水涨船高。大数据和数据分析非常有趣,因为该行业一直是 Python 领先,但是后端可能会使用 Java 和 JVM 语言。软件开发工具,当然也会使用 Java。目前 JetBrains IDE 就是使用 Java 构建的。尽管其他行业的数字都有费解,但实际上,了解 Java 在这些行业中的使用状况非常有意义。

Java 工具

Java 版本

Java 8 仍然是目前最受欢迎的版本。75% 的 Java 专业开发人员正在使用 Java 8。Java 11 的热度也在上升,与去年相比,其使用率增加了 10%。下图显示了Java 各个版本的分布情况(根据 2020 年开发人员生态系统状况调查),开发人员可以选择多个版本。

专家分析

Java 8 如此受欢迎的原因如下有几个。首先,Java 8 拥有 Java 开发人员希望从该语言中获得的一切,它拥有 lambda 和 Stream,而且是一个非常易于使用的版本。另外,人们不是特别愿意使用 Java 9。因为 Java 9 中引入了一些重大的体系结构变更,人们担心这些改动会破坏他们在 Java 8 中构建的应用程序。

除此之外,Oracle 还引入了每年两次的发布,而且并非所有版本都有长期的支持,比如Java 9、Java 10、Java 12 和 Java13 都只有 6 个月的支持,这可能就是为什么它们都只有非常少量用户的原因。Java 13 的用户之所以略高,是因为在此次调查结束之际,它是最新版本,因此我们认为 Java13 会在几个月后下降。

Java11 于 2018 年问世,它是拥有长期支持的最新版本。但许多企业仍然未使用它,是因为他们担心 Java9 以后的版本(由于体系结构的变化)可能会破坏一切,而且 Java 11 引入了新的许可和新的订阅,因此人们更加担心以错误的方式使用错误的版本会被 Oracle 罚款。

许多开发人员不愿升级到 Java 11 的最后一个主要因素是,它没有多少令人兴奋的新功能,因此与升级风险相比,该版本带来的新功能有点得不偿失。Java 17 将是下一个拥有长期支持的版本,而且带有许多新功能,但是直接从 Java 8 升级到 Java 17 也有很多自身的问题。

我认为,下一个长期版本 Java 17 将比前一代长期版本 Java 11 更受欢迎。但是,为了减小升级的压力,我建议你先将代码库升级到 Java 11,然后再更新到Java 17,以避免出现重大问题。

流行的应用服务器

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

专家分析 

虽然 Jetty 位居第二,但所占百分比低得令人惊讶。可能是有些正在使用 Spring Boot 和其他微服务框架的开发人员没有意识到,其实背后正在使用的是 Tomcat 或 Jetty。

五大 Web 框架

2018 年,SpringBoot 与 Spring MVC 的使用状况相同,但如今 2020 年变得越来越流行了。(数据来自2018年和2020年开发人员生态系统状况的调查中,所有以 Java 为主要语言的开发人员)。

专家分析 

我们基本上可以确认 Spring 占领了整个市场。仍然有人在使用 Struts 1,但几乎可以肯定只是在遗留应用程序中使用。

五大 JVM

2020 年开发者生态系统状况调查显示,24% 的用户使用了 VisualVM,有一半的用户没有使用任何 JVM。(数据来自 2018 年和2020年开发人员生态系统状况的调查中,所有以 Java 为主要语言的开发人员)。

五大 IDE /编辑器 

根据 2020 年开发者生态系统状况调查,IntelliJ IDEA 的份额从 2018 年的55% 增加到了 2020 年的 72%,而其他四种 IDE 的使用量则减少了。

专家分析 

即便我们对调查结果进行加权,也无法否认该信息有些偏差,因为该数据来自JetBrains 开发者生态系统状态的调查,而且 JetBrains 的主要产品之一是 IntelliJ IDEA。但是,这并不是说这个结果完全不合理,就好像我们在其他调查中看到的一样,IntelliJ IDEA 是最常用的 IDE 之一,拥有大约 55-60% 的用户份额。

VS Code 正在增长,它是一款优秀的代码编辑器,能够为你提供IDE的功能以及一些附加的功能扩展,因此如果人们开始转向 VS Code,则可能意味着开发人员并不清楚一个功能齐全的 IDE 到底能为他们提供什么。在 Web 开发中,使用编辑器是可以理解的,因为 Web 开发人员通常使用动态语言,并且经常使用其他工具(例如浏览器插件)来满足他们的需求。

但是在 Java 中,尤其是专业 Java 中,一款继承了应用程序服务的工具确实有很大帮助,你可以使用它们来执行分析、重构以及其它处理。

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

IT 社区经常讨论 Java,其中之一就是 Stack Overflow。我们从问答中获取了数据,然后找出了最常出现在“java”问题中的标签。下图纵轴表示提到 Java 的问题,横轴表示标签出现的总次数。

专家分析 

对于希望使用正确的技术或寻找工具的用户来说,这张图表可能非常有用。各种语言的出现比较有趣,这可能是人们拿这些语言与 Java 做了比较的缘故。而 正则表达式是一直是困扰很多人的一个话题,因此它们出现在图中并不奇怪。


Java社区中的热门话题

有关Java的讨论 

我们分析了有关“java”的帖子,并找出了 Java 用户在 Reddit 上讨论最多的主题。

专家分析 

这些正是我期望看到的主题。例如用 Java 编写代码的人总是会对这种语言是否仍然有需求感兴趣,毕竟,这种语言还在发展。我们刚刚庆祝了 Java 诞生 25 周年,因此人们希望确认一下这种语言是否过时,还是说仍然非常流行。特别是对于刚从大学毕业的学生,他们还不知道所学的语言是否能为自己提供工作的机会。

如何在容器中部署 Java 是一个非常热门的话题,包括我在内,这是每个人都想知道的东西,但我们很难找到相关的信息。我对性能优化这个主题并不感到惊讶尽管我认为这个主题有点多余,因为大多数应用程序实际上并不需要开发人员进行优化,尽管许多开发人员认为这是一项重要的职业技能。后端与前端的协同工作可能非常复杂,因此我可以想象此处有很多问题。

原文链接:

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

https://www.jetbrains.com/lp/devecosystem-2020/java/

#欢迎来留言#

留言点赞数量最多的前三名

程序人生携手【电子工业出版社-博文视点】送出

《从零开始构建企业级推荐系统》一本

截至10月13日14:00点

更多精彩推荐
☞软件开发行业,年轻与大龄程序员的生存现状究竟如何?
☞当代程序员学生有多能拼?请看表演!| 每日趣闻
☞被判赔联想525万,常程方回应:提起诉讼;百度自动驾驶出租车在京全面开放;VS Code 1.50版发布|极客头条
☞采摘工人月薪十万却无人应聘,英澳农场求助 AI
☞放弃 Windows 后 ,开源操作系统能成为主流桌面系统吗?
☞错过了秋天的第一杯奶茶,不要错过秋天第一场黑客松
点分享点点赞点在看

Java 25 岁,发展现状大曝光!程序员的机会来了相关推荐

  1. 25岁,一个北漂程序员,如果不想35 岁被淘汰,请把它当成一种信仰!

    25岁,一个北漂程序员,入职三年,Java中级工程师,月薪15k,965的工作经常干成996,比起老家的同龄人,我拥有一份不错的薪水,但是想在北京安家,梦想似乎遥不可及. 北京大概一年有5万人加入IT ...

  2. 25岁,一位女程序员的幸运几年

    最近刚满25岁,上天也送我一个幸运的礼物,我成为我们组的开发经理. 虽然很小很小的一个职位,但是对于最近犹豫彷徨的我,这无疑是一针镇定剂. 我是一个女生,从事后端开发的女生.这一路走来,很多心酸,很多 ...

  3. “菜鸟”程序员和“大神”程序员差距在哪里

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 刚刚走出就业的程序员,技术是刚刚起步的基点.那下面我们就聊一聊有关技术的东西.首先请您先想 ...

  4. 大数据程序员的工作职责是什么?

    大数据程序员的工作职责是什么? 大数据开发要负责公司大数据平台产品的技术工作,如需求分析.架构设计.研发.以及性能分析工作:提升Hadoop集群的高可用性.高性能.高扩展特性:海量数据的导入优化工作: ...

  5. html简单个人网页制作 HTML5+CSS大作业——程序员个人简历设计(5页)

    HTML5+CSS大作业--程序员个人简历设计(5页) 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. ...

  6. 大公司程序员 VS 小公司程序员 | 差别在哪?

    很多大学生毕业之后,都希望能进互联网大厂,但是大厂并没有那么好进,不说别的有的学历就会把你卡在门外.但是大厂有大厂的优势,小公司有小公司的优势.根据自己的需求选择自己合适的公司,才是最重要的. 大公司 ...

  7. 你跟大神程序员的差距,就在这8本内功心法

    导读:程序员凭什么拿高薪?菜鸟程序员凭运气,普通程序员凭技巧,大牛程序员凭经验,大神程序员凭直觉. 当菜鸟程序员在写bug的时候,大神程序员在造轮子.怎样才能造轮子?打牢基础知识,把"内功心 ...

  8. 十大PHP程序员必备工具

    十大PHP程序员必备工具 1.Notepad++ 总结来说就是小而精,7.4版本的软件包只有2.9M,比一般的IDE小数十倍,但是Notepad++的功能确是很全面的,代码高亮,语法折叠,宏功能,内置 ...

  9. 一个大公司程序员的牢骚

    在中国,如果 40 岁了还在写代码,是一种幸福,还是一种悲哀? 一个大公司程序员的牢骚 从360来百度已经一年了,期间经历过很多的需求开发,也带领小伙伴做过Android插件方向的研发与通宵上线.没有 ...

最新文章

  1. 理解T-SQL:高级查询
  2. 鸿蒙开发-从搭建todolist待办事项来学习组件与js之间的交互
  3. PHP各种实用的开源库推荐
  4. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言——1105:数组逆序重存放
  5. 苹果支付:如何解决沙盒环境下获取可恢复购买项为空
  6. LeetCode算法入门- Remove Nth Node From End of List -day17
  7. 能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,幼儿园课件制作教案...
  8. 大型企业网络设备管理
  9. 【Linux】使用du、df 和 sort 命令快速找出Linux系统中的大文件
  10. linq To Xml 用法简介
  11. 孙鑫-MFC笔记二--MFC框架剖析
  12. 7.2.5 dps 测试软件,7.2.5冰DK萨墓六大DPS饰品测试:属性机制及分析
  13. Ubuntu系统镜像下载网站
  14. Eclipse中,使用Darkest主题,static方法在main中不是斜体的解决办法
  15. 为选区添加描边_ps怎么给选区加上虚线描边
  16. 方波通过RC滤波器波形-Matlab仿真
  17. Homebridge插件编写-基于homebridge-aqara
  18. 电脑网络正常,浏览器连不上网的解决办法
  19. 2019年英语四级作文
  20. 【第004篇】Java工具类之货币大小写转换

热门文章

  1. 对于神经网络,硕博士不需要弄明白原理,只需要应用,是这样吗?
  2. 陈春花:管理到底是什么?
  3. 为什么一些现有成熟客户不愿意上S/4
  4. 人体姿态估计研究文集
  5. 我的业务要不要用人工智能?引入AI前你需要评估的(四)
  6. 项目管理工作对于产品经理,是杂活吗?
  7. 苹果谷歌脸书大佬前往游说!欧盟将首次对AI进行监管
  8. SAP SD基础知识之交货中的控制元素
  9. Reddit年度盘点:2019年最佳机器学习项目
  10. FaceBook AI大牛贾扬清传离职,将加入中国公司