前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JRebel 2022年Java开发生产力报告(极简版)

JRebel 2022年Java开发生产力报告(极简版)

作者头像
御剑
发布2022-04-15 08:33:10
7950
发布2022-04-15 08:33:10
举报
文章被收录于专栏:微言码道微言码道微言码道

今天看到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的相关报告,我也整理过,附录如上,如果有兴趣,可以对比阅读参考下

InfoQ Java趋势报告2021及解读

2021年关于Java的一些有趣的事实

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微言码道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在之前
  • 调查维度
  • 调查结果
    • 1. Java语言及开发趋势
      • 2. Java架构趋势
        • 3. Java工具趋势
        • 结论
        • 附录
        相关产品与服务
        容器服务
        腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档