—— JRebel 2022年Java开发生产力报告(极简版)
今天看到JRebel发布了2022年Java开发生产力报告,觉得稍微有点意思。就特意分享下相关数据。
报告原文请访问JRebel的官网查阅,原文为英文,整份报告约32页。
写在之前
JRebel是什么
JRebel是一个并非开源,也非免费的工具,这个工具主要是做Java后端hot reload的。干什么的呢,就是你改动代码时,不需要重启,可以时时看到最新效果。
话说,在Java后端开发,我现在都很少遇到这样的场景需求,现在主流都是前后端分离,后端开发应该不会涉及UI方面的,不太清楚hot relaod到底要reload什么。而且我现在也是使用TDD的方式开发,不要说hot reload,开发过程中,基本服务我都不会运行起来,都是以单元测试来驱动开发。
不过,JRebel的这份报告到是有点阅读价值。
关于国外的类似的调查
据我所知,类似这种年度技术调查报告,国外公司到是非常喜欢做,我知道的有
- ThoughtWorks的年度技术雷达报告
- InfoQ的Java年度生态趋势报告
- Intellij公司也有关于Java的年度调查报告
- JRebel的Java年度报告
其中,我认为ThoughtWorks最有深度,InfoQ次之。Intellij和JRebel在深度上就浅很多了。
国内到是没怎么见过类似的调研。
调查维度
JRebel的调查维度到是有点意思,它按不同的国家,不同公司的大小,不同职位等做了分类统计,这使得它的调查结果及数据在这些维度方面到是非常有参考价值。
按国家
从公司分布的国家来看,调查是美国,中国及德国为主。
- 美国公司数量: 177
- 中国公司数量: 128
- 德国公司数量: 60
按职位
从职位上来看
- 开发者为主,占到48%
- Java架构师,占22%
- 团队领导,15%
相对来说,职位上覆盖也比较齐全。
按团队大小
- 以3-9个人为主,占到47%,这也是团队的最优人数范围。
- 10到20的占到22%
- 21-50占到10%
公司人数
- 1000人以上的公司占到31%
- 100到10000人之间的公司占到27%
- 20-100人数的公司占到20%
- 初创公司 12%
- 自由职业 10%
总体说来,调查的各个维度覆盖的还挺好,我认为这是它最大的价值之一,可以看到不同大小的公司的一些技术选择与趋势的对比。
调查结果
1. Java语言及开发趋势
JDK及语言
调查了JDK的各个版本,加上Kotlin,Scala以及Groovy三个JVM语言

- JDK 8使用最高,占到37%;其次是 JDK 11,占到29%; JDK 17调研时还刚出,没有数据
- 在JVM语言中,Kotlin使用最多,占8%;Groovy占6%;Scala最少,只有3%
- 大公司使用JDK 8的比重高于小公司
JDK 升级考虑因素
从大到小,依次是:
- 是否LTS长期版本
- 安全
- 性能
- 新特性
- 兼容性
可见,是否愿意升级,最大的考虑因素是LTS长期版本,也就是稳定性与支持度。
LTS长期支持版普遍在稳定性与支持度上当然是更好的
JDK 17升级计划
JDK 17是最新的LTS版本,对于这个最新的LTS版本,升级计划是:
- 37%表示计划未来6个月内升级
- 30%计划12个之后内升级
- 25%计划6-12个月内升级
- 8%不会升级
如果按公司大小来看,小于100人数公司升级意愿最高,44%计划6个月内升级。大公司则只有30%。
充分说明,公司小,越灵活,越愿意使用新技术。公司大,越考虑稳定性,不愿意轻易升级。
JRE/JDK版本

- Oracle Java最多,36%
- OpenJDK占到27%
- AdoptOpenJDK / Adoptium 占到 16%
显然,肯定是Oracle Java使用的最多吧。不过,OpenJDK使用的也不少了。
2. Java架构趋势
使用架构
在选择后端架时,微服务无愧是当今的主流。其次是单体服务,以模块化的单体服务

- 微服务占到32%
- 单体服务占到22%
- 模块化的单体服务13%
从公司大小上来比较,大公司使用微服比重更高,占到36%,小公司只有28%。当然大公司的应用更复杂,更需要微服务来应对。
微服务趋势
在是否使用微服务的架构的回答中,
- 44%表示应用完全使用的是微服务架构
- 同样有44%表示正在迁移至微服务架构
微服务数量
应用究竟分了几个服务呢
- 30%的应用服务在1-5个之内
- 24的应用服务数量为5-10个
- 16%的应用服务数量为10-20个
- 超过20个的有22%
就公司大小来区分,很容易想像到,大公司的微服务数量更多。超大公司35%的应用服务数量超过20个
微服务框架选择
不用想,最多的当然是Sprign Boot了

- Spring Boot占到74%,是绝对的主力
- Quarkus其次,占到5%
- Vert.x占到2%
Quarkus与Vert.x都是响应式的框架,从这个数据可见,使用响应式仍然少数。
另外有个DropWizard,可能很多人不太清楚,它是一个轻,快的完全不使用Spring的框架,非常有特点。
3. Java工具趋势
虚拟机

- Docker占到41%
- Kubernetes占到26%
- Vmware占16%
可见,使用容器化成为主流。而容器化中,当前仍然以Docker为主流。
云服务
- AWS占到31%,是最多的
- Microsoft Azure是其次,占到14%
- 有24%没有使用PaaS服务
奇怪的是,有这么多中国公司,云服务居然国内都没有一个上榜。不太清楚这调查咋做的。
应用服务
- Tomcat比重最高,48%
- JBoss/Wildfly其次,15%
- Jetty占13%
Tomcat最多这个可以猜到,因为它是Spring Boot的默认选择。不过JBoss高于Jetty,到是意料之外了。
构建工具
构建工具没有什么意外,肯定是maven + gradle了,而且肯定maven仍然是主流。
- Maven是主流,占到68%
- Gradle其次,占到23%
Java IDEs
关于IDE工具,肯定是IntelliJ用的最多了,不过调查结果中,居然有相当一部分使用的是VSCode
- IntelliJ占到48%
- Eclipse占24%
- VSCode占18%
没想到VSCode居然在Java上也有这么多人使用。
CI/CD 工具
CI方面,企业使用最多的豪无疑问是Jenkins了,其次则是Github Actions。
- Jenkins为主,使用比重高达46%
- 而Github Actions占到16%
相信企业多是以Jenkins为主,毕竟是开源免费,可私有化部署的。而Github Actions感觉更多的是一些开源项目或个人私有项目会选择这个。
结论
这份报告中,还有一些和JRebel有关的类似应用启动时间等,但感觉对我们普通开发人员来说,价值不大,就没列出来了。
总体来说,这份报告涉及到维度并不广,也没有太多深度,调查的一些数据也基本是大家共知的。比不上ThoughtWorks与InfoQ的报告。
建议阅读ThoughtWorks与InfoQ的报告,特别是ThoughtWorks的技术雷达,对技术的讨论非常有广度与深度。
附录
InfoQ与IDEA 2021的相关报告,我也整理过,附录如上,如果有兴趣,可以对比阅读参考下
[2021年关于Java的一些有趣的事实](