整理 | 苏宓

出品 | CSDN(ID:CSDNnews)

技术更新迭代的速度,让很多开发者被动地开启了奋起直追的模式。但是在某些领域或技术层面,也永远不要小看技术人的「念旧」情结,譬如 2009 年发布的 Windows 7、2014 年发布的 Java 8 在当前技术圈中仍占据不小的份额。

近日,美国软件开发商 Perforce Software 旗下的 JRebel 品牌在对近千名专业的 Java 开发者调研后,重磅发布了《2022 年 Java 开发者生产力报告》。据调查显示,我们有以下最新发现:

  • 八年前发布的 Java 8 依然是 Java 中应用最广泛的版本,占比 37%,其次是 Java 11;

  • Oracle 的 Java 发行版最受欢迎(36%),其次 27% 受访者使用通用OpenJDK Java。

  • Docker 是最常见的虚拟机平台,41% 的开发者使用它。26% 的受访者使用 Kubernetes,其次是 VMware,占 16%。

  • Apache Tomcat 是迄今为止最受欢迎的 Java 应用程序服务器,使用率为48%,其次是 JBoss / Wildfly,占 15%。

  • JetBrains 的 IntelliJ 是最受欢迎的 Java IDE,占 48%,其次是 Eclipse,占 24%,Visual Studio Code 占 18%。

Java 开发趋势:Java 8 最受欢迎,Java 17 奋起直追

众所周知,Java 8(2014 年 3 月发布)和 Java 11(2018 年 9 月发布)都是长期支持 (LTS) 版本,它们获得了 Oracle 几年的产品支持。对于一些如 Java 9、Java 10、Java 12 到 Java 15 的非 LTS 版本,Oracle 只提供六个月的支持。

八年前发布的 Java 8 依然最流行

因此,当被问及在主要应用程序员中使用哪种 JDK 时, 有 37% 的受访者回答了 Java 8,其次 29% 的开发者在使用 Java 11。另外,有 8% 的开发者使用了与 JVM 兼容的 Kotlin,6% 的受访者使用 Groovy 和 Scala 占比 3%。

当进一步了解使用 Java 不同版本背后的公司规模时,我们发现 Java 8 在 100 人以下的公司中使用率要稍低一些,和往年相对比,Java 11 及以上版本使用率有所增加,占比 30%。

与此形成对比的是,拥有 100 名以上员工的公司应用 Java 8 要更多一些,占比 39%。究其原因,主要是因为大厂在生产环境中接受新版 Java 非常困难,有时并不是改几行代码就能解决的事情,测试、迁移、兼容性等都是需要解决的问题,况且很多系统并不会为了单纯的 JDK 升级而升级。

为什么很多开发者选择更换 Java 版本?

这不,也正如调查数据显示,有 25% 的开发者表示长期支持是升级 JDK 最主要的原因。

除了 LTS 之外,安全和性能是最主要的因素,分别为 23% 和 20%。

不过,近几年,随着 Oracle 将 Java 的更新频率改变,很多大小公司并不会太着急选择将 Java 版本升级,大概率会跟着 LTS 版本走。

37% 开发者计划未来六个月升级到 JDK 17,小公司速度更快

当提及大家还要在 Java 8 版本上坚持多久,才会去应用最新版本 Java 17 ?

近四成开发者表示计划在未来 6 个月内升级到 JDK 17,25% 计划在未来 6-12 月内升级。不过,也有 8% 的受访者称不打算升级到 JDK 17。

其中,根据调研数据显示,来自较小公司(100人以下)的受访者了选择采用 JDK 17 的意愿更为强烈,44% 的人计划在未来 6 个月内升级到 JDK 17。规模较大的公司(超过100人)的受访者需求就没有那么强,有 38% 的受访者计划在未来 12 个月后的某个时间升级。

毋庸置疑,LTS JDK 版本相较非 LTS 版本具有更强的吸引力。不过和上一个 LTS 版本的 Java 8 相比,Java 17 的发展势头更迅猛。

Oracle JDK 即使收费,也是开发者最常用的 JRE/JDK 发行版

2019 年 4 月,Oracle 宣布 Oracle JDK 开启商用收费模式。不过,在今年受访者群体中,Oracle Java 依然是开发者首选的发行版,占 36%。现实来看,这一点也不足为奇,毕竟 Oracle Java 这样的商业发行版可以为大企业提供更为可靠的补丁和更新等服务,由此也让许多大型企业减少内部成本。

Generic OpenJDK 和 AdoptOpenJDK/Adoptium 分列二三位,占比 27% 和 16%。

Java 应用程序架构趋势:微服务是当之无愧的 NO.1

据调查显示,在开发应用程序所采用的架构中,微服务最受欢迎,占比 32%。其次单片机应用程序占 22%。

有趣的是,大型企业(100 名以上员工)对微服务的采用率为 36%,这与小型企业(100名以下员工)的 28% 形成鲜明对比。

近九成开发者正在使用微服务 

当问及开发者对微服务的使用状况时,我们发现大多数组织或团队要么拥有完全基于微服务的应用,要么目前正在向微服务架构过渡,这一比例高达 88%。

Java 技术趋势:Docker、Apache Tomcat 最受开发者欢迎

今年,JRebel 也对虚拟机、框架、云平台、构建工具和 IDE 的使用情况做了进一步的调研,发现在一些流行的虚拟机和容器等平台中,Docker 的热度居高不下,占比 41%,远超位居第二的 Kubernetes(26%)。VMWare 排在第三位,占16%。

Java PaaS 供应商

AWS 是最受欢迎的 PaaS 供应商,占比 31%。那些不使用 PaaS 的受访者以 24% 的比例位居第二。Azure 是第三位最受欢迎的,占 14%。

应用服务器

与往年一样,Apache Tomcat 是程序员最喜欢的 Java 应用服务器,占比 48%。其次分别为 JBoss/Wildfly(15%)、Jetty(13%)。

构建工具

在构建工具层面,Maven 使用率最高,占 68%,比去年的使用率增长了一些。

与小型公司相比,大型公司对 Maven 使用率更高,占比 71%,而小型公司只有 65%。

Java IDEs

在 2022 年,IntelliJ IDEA 再次成为开发 Java 应用程序时最受欢迎的 IDE,48% 的受访者选择它作为他们的 IDE。Eclipse 位居第二,占比 24% 。其次分别为 VSCode(18%)和 Netbeans(6%)。

整体而言,后来者 VSCode 在竞争激烈的 Java 集成开发环境中逐渐站稳了脚跟。或许很多时候,不少开发者会将其和 IntelliJ 等主流 IDE 同时使用,但一定程度上,它正在蚕食 Eclipse 的市场份额。

CI/CD 技术趋势

CI/CD、DevOps 方法和工具的实施是企业应用 Java 过程中不可缺少的一部分。根据调查报告显示,和去年一样,Jenkins 是最受欢迎的选择,占比 46%。GitHub Actions 排在第二位,占 16%。

在 CI/CD 构建时间上,较小的组织(100名员工以下)的受访者表示不会花费太久的时间,其中 58% 的受访者表示 CI/CD 构建的时间控制在 5 分钟以下。与之形成对比的是,大型组织(超过 100名员工)的这一比率缩减到 42%,且 40% 使用了超过十分钟的时间。

CI/CD 提交频率

与去年类似,大多数受访者表示,他们每天至少提交五次代码。

以上是你的真实现状吗?欢迎留言,分享你在 Java 应用过程中的想法。

更多报告内容见:https://www.jrebel.com/resources/java-developer-productivity-report-2021

—END—

Java 8 八年不倒、IntelliJ IDEA 力压 Eclipse,2022 年 Java 开发者都在用什么?相关推荐

  1. Java 8 八年不倒、IntelliJ IDEA 力压 Eclipse

    整理 | 苏宓 出品 | CSDN(ID:CSDNnews) 技术更新迭代的速度,让很多开发者被动地开启了奋起直追的模式.但是在某些领域或技术层面,也永远不要小看技术人的「念旧」情结,譬如 2009 ...

  2. IntelliJ IDEA快速入门 | 第二十八篇:详述IntelliJ IDEA(或者Eclipse)中一些常用的快捷键(下)

    由于IntelliJ IDEA(或者Eclipse)中常用的快捷键比较多,所以这里我就分两篇文章来给大家进行讲述了,这是第二篇. F2:查看文档说明 如果咱们现在想查看一下System类的文档说明,那 ...

  3. java opencv 开发环境_在IntelliJ IDEA 13中配置OpenCV的Java开发环境

    准备工作: 下载IDEA 13(这里以版本13为例,后面简称IDEA): 下载Java JDK(用于配置基本的Java开发环境): 下载OpenCV 2.4.9(这里以版本2.4.9为例,据这篇文章说 ...

  4. 启动eclipse出现“A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available”错误处理

    今天第一次使用eclipse开发工具,打开时报以下错误: A Java Runtime Environment (JRE) or Java Development Kit(JDK) must be a ...

  5. IntelliJ IDEA 2018.2 发布,支持 Java 11

    转载自   IntelliJ IDEA 2018.2 发布,支持 Java 11 近期,JetBrains发布了其旗舰产品IntelliJ IDEA的2018.2版本.新版本支持即将推出的Java 1 ...

  6. IntelliJ IDEA 运行你的第一个Java应用程序

    IntelliJ IDEA 运行你的第一个Java应用程序 创建项目让我们创建一个简单的Java Hello World项目. 单击创建新的项目. 打开新建项目向导. 你应该注意的主要是项目的SDK. ...

  7. Java第八次实验要求

    实验八 GUI 一. 实验目的 1. 掌握Java语言中窗体的基本用法: 2. 掌握Java语言中窗体控件的基本用法: 3. 掌握Java语言中窗体事件.监听器的基本概念,及其使用方法: 4. 掌握线 ...

  8. 2022全新Java学习路线图动力节点(八)Java选学的技术有哪些?

    八.失落之地的辉煌 这里曾经繁华一片,被世人称作福光,搁在古老的东方就叫洞天福地!但现在一切都烟消云散,一场魔法灾难让此地化作焦土,沦为人间炼狱.此地长年被黑暗浓雾笼罩,即便世界被同化之后也没能改变土 ...

  9. java的八种基本数据类型

    一.写在前面 为什么要记录这个随笔呢,主要是因为老是把short类型遗忘. 二.Java的八种基本数据类型 1.四种整数类型(byte.short.int.long): byte:8位.有符号.最小值 ...

最新文章

  1. 这65条工作和成长建议,你将受用终生!
  2. WPF定时刷新UI界面
  3. 基于事件驱动架构构建微服务第3部分:Presenters, Views和Controllers
  4. tensorflow基础:tf.data.Dataset.from_tensor_slices() 与 tf.data.Dataset.from_generator()的异同
  5. oracle drop purge
  6. mac安装helm工具_适用于初学者的基本 kubectl 和 Helm 命令
  7. 数学问题(二):质数、质因子
  8. 敏感词过滤/字符编码
  9. MATLAB和C语言的区别
  10. linux登陆命令行,如何使用linux命令行登陆
  11. php html5聊天室源码,Grupo Pro v2 - PHP聊天室源码
  12. mysql红黑联盟_MySQL在Centos的卸载和安装 - MySQL - 红黑联盟
  13. BLE Mesh (9) —— Mesh beacons
  14. linux ping加网址,在运行里输入PING加网址是什么意思
  15. 100W个微信红包封面,人人都能领取到!!!
  16. keil C语言编程 位地址定义,Keil C编写下位机程序的小技巧和注意点
  17. CE简单修改演示(植物大战僵尸)
  18. excel波士顿矩阵怎么做_excel矩阵图怎么做
  19. 什么是html的语义化?
  20. 视频教程-python全栈习题课-Python

热门文章

  1. 【Qt串口调试助手】1.4 - 16进制接收/发送
  2. C++的堆与拷贝构造函数
  3. leetcode932.BeautifulArray
  4. 正则表达式应用笔记----解析网页,获取并显示“未来三天全国天气预报”(java)...
  5. VC2008中使用GDI+(转)
  6. 关于layui.laypage.render 刷新首页没有分页问题
  7. POJ1062昂贵的聘礼(经典) 枚举区间 +【Dijkstra】
  8. Centos下telnet的安装和配置
  9. 一个前端博客(9)——浏览器检测和加载
  10. Office 2016 (Preview)