今天看到JRebel发布了2022年Java开发生产力报告,觉得稍微有点意思。就特意分享下相关数据。
报告原文请访问JRebel的官网查阅,原文为英文,整份报告约32页。
JRebel是什么
JRebel是一个并非开源,也非免费的工具,这个工具主要是做Java后端hot reload的。干什么的呢,就是你改动代码时,不需要重启,可以时时看到最新效果。
话说,在Java后端开发,我现在都很少遇到这样的场景需求,现在主流都是前后端分离,后端开发应该不会涉及UI方面的,不太清楚hot relaod到底要reload什么。而且我现在也是使用TDD的方式开发,不要说hot reload,开发过程中,基本服务我都不会运行起来,都是以单元测试来驱动开发。
不过,JRebel的这份报告到是有点阅读价值。
关于国外的类似的调查
据我所知,类似这种年度技术调查报告,国外公司到是非常喜欢做,我知道的有
其中,我认为ThoughtWorks最有深度,InfoQ次之。Intellij和JRebel在深度上就浅很多了。
国内到是没怎么见过类似的调研。
JRebel的调查维度到是有点意思,它按不同的国家,不同公司的大小,不同职位等做了分类统计,这使得它的调查结果及数据在这些维度方面到是非常有参考价值。
按国家
从公司分布的国家来看,调查是美国,中国及德国为主。
按职位
从职位上来看
相对来说,职位上覆盖也比较齐全。
按团队大小
公司人数
总体说来,调查的各个维度覆盖的还挺好,我认为这是它最大的价值之一,可以看到不同大小的公司的一些技术选择与趋势的对比。
JDK及语言
调查了JDK的各个版本,加上Kotlin,Scala以及Groovy三个JVM语言
JDK 升级考虑因素
从大到小,依次是:
可见,是否愿意升级,最大的考虑因素是LTS长期版本,也就是稳定性与支持度。
LTS长期支持版普遍在稳定性与支持度上当然是更好的
JDK 17升级计划
JDK 17是最新的LTS版本,对于这个最新的LTS版本,升级计划是:
如果按公司大小来看,小于100人数公司升级意愿最高,44%计划6个月内升级。大公司则只有30%。
充分说明,公司小,越灵活,越愿意使用新技术。公司大,越考虑稳定性,不愿意轻易升级。
JRE/JDK版本
显然,肯定是Oracle Java使用的最多吧。不过,OpenJDK使用的也不少了。
使用架构
在选择后端架时,微服务无愧是当今的主流。其次是单体服务,以模块化的单体服务
从公司大小上来比较,大公司使用微服比重更高,占到36%,小公司只有28%。当然大公司的应用更复杂,更需要微服务来应对。
微服务趋势
在是否使用微服务的架构的回答中,
微服务数量
应用究竟分了几个服务呢
就公司大小来区分,很容易想像到,大公司的微服务数量更多。超大公司35%的应用服务数量超过20个
微服务框架选择
不用想,最多的当然是Sprign Boot了
Quarkus与Vert.x都是响应式的框架,从这个数据可见,使用响应式仍然少数。
另外有个DropWizard,可能很多人不太清楚,它是一个轻,快的完全不使用Spring的框架,非常有特点。
虚拟机
可见,使用容器化成为主流。而容器化中,当前仍然以Docker为主流。
云服务
奇怪的是,有这么多中国公司,云服务居然国内都没有一个上榜。不太清楚这调查咋做的。
应用服务
Tomcat最多这个可以猜到,因为它是Spring Boot的默认选择。不过JBoss高于Jetty,到是意料之外了。
构建工具
构建工具没有什么意外,肯定是maven + gradle了,而且肯定maven仍然是主流。
Java IDEs
关于IDE工具,肯定是IntelliJ用的最多了,不过调查结果中,居然有相当一部分使用的是VSCode
没想到VSCode居然在Java上也有这么多人使用。
CI/CD 工具
CI方面,企业使用最多的豪无疑问是Jenkins了,其次则是Github Actions。
相信企业多是以Jenkins为主,毕竟是开源免费,可私有化部署的。而Github Actions感觉更多的是一些开源项目或个人私有项目会选择这个。
这份报告中,还有一些和JRebel有关的类似应用启动时间等,但感觉对我们普通开发人员来说,价值不大,就没列出来了。
总体来说,这份报告涉及到维度并不广,也没有太多深度,调查的一些数据也基本是大家共知的。比不上ThoughtWorks与InfoQ的报告。
建议阅读ThoughtWorks与InfoQ的报告,特别是ThoughtWorks的技术雷达,对技术的讨论非常有广度与深度。
InfoQ与IDEA 2021的相关报告,我也整理过,附录如上,如果有兴趣,可以对比阅读参考下