写点什么

2022 年 java 将何去何从?-金马国际

  • 2022 年 4 月 08 日
  • 本文字数:2140 字

    阅读完需:约 7 分钟

自从我们在《》(where's java going in 2020)中深度探讨 java 生态系统以来,已经有一段时间了。jrebel 最新发布的《》报告(java development trends and analysis 2022)为我们提供了一个契机,可以重新审视 java 生态系统。那么,根据 jrebel 的报告,这篇《2022 年的 java 将何去何从》便出炉了。


这份标志着 jrebel 倡议十周年的新报告,从以下角度审视了 java 生态系统的状况:


  • 微服务的采用和使用趋势

  • ci/cd 构建时间和提交频率

  • 流行的框架、应用服务器、虚拟机和其他工具

  • 开发人员的整体生产力,包括各种挑战和障碍


该报告共收到了 846 份回复,其中一半的受访者是开发人员,占了大多数;其余的则由 java 架构师、团队领导、总监、顾问和其他人员组成。


最重要的是,有 31% 的样本在超过 1000 名员工的大型企业中工作,因此这份报告很好地说明了 java 在工业领域的使用情况。


java 为何总是受到企业的青睐?


企业在过去和现在一直都在谈论 java。我们可以从《财富》500 强企业中了解到他们对 java 的依赖程度。是的,蓝筹股喜欢 java。理由有很多。企业最看重的是向后兼容性,他们对激进的更新和升级是出了名的“过敏”。20 年前用 java 5 编写的系统,应该能够在第 8 版下编译和运行。对他们来说,稳定性才是最重要的。


说起来,另一个重要的指标是 java 版本的采用情况,以及 oracle jdk 是否比 openjdk 更受欢迎。8 版之后的发布周期要快得多,现在已经发布到 18 版,你会期望大多数人都会迁移到最近的版本。但事实却不是这样。正如调查所强调的,37% 的接受调查的开发人员仍然使用古老的 8 版(2020 年为 58%),尽管 java 11 有 29%(2020 年为 22%)取得了进展。这表明人们更喜欢稳定,而不是掌握所有最新花里胡哨的特性。


至于 openjdk 与 oraclejdk 方面,与 jrebel 的 相比,情况发生了一些变化,该报告评论道:


看到我们的调查对象中有多少人在为 oracle jdk 付费,这非常令人惊讶。我完全预计开源选项会有更大的市场份额。


并提出了一个理由:


在我们的调查中,有大量的 java 8 开发人员代表。我们认为,使用 java 8 的开发人员的数量表明,该项目已经有很长一段时间没有更新了,这也许是将应用程序保留在 oracle 发行版中的原因。


并补充道:


oracle jdk 提供的支持可能比我们想象的更重要。


今年 oraclejdk 份额从 2020 年的 48% 下降到 36%。graalvm 从 2020 年的 0.25% 上升到今年的 3%



其余的问题是关于性能问题、微服务和 ci/cd。


受访者开发的主要应用程序的架构是基于微服务的(32%),其次是老式的单体应用(22%)。


我认为,这肯定是由于基于 jvm 的框架的卷土重来,使得 java 在微服务领域中处于领先地位。我指的是 quarkus,它与 micronaut 和 helidon 一起,是过去几年涌现出来的新的开源框架联盟的一部分,开源框架联盟旨在推动 java 在微服务领域的应用。它们的 aot 能力,加上 graalvm 的本机镜像可执行文件,应该真的会有所作为。


尽管 spring boot 仍然占据首位,高达 74%,其次是 quarkus、vert.x 和 dropwizard,分别为 5%、2% 和 1%,位列前四。然而,魔鬼就在细节中。quarkus 在 2020 年有 0.5% 的份额,而 spring boot 为 82%。鉴于 spring 是占主导地位的框架,他们不是将其与 spring native 结合起来使用吗,spring native 可以让你使用 graalvm 本机映像编译器将 spring 应用程序编译成本机映像?


报告中提到的一个主要问题是,自最初转换/创建微服务以来,微服务应用中启动服务的时间有所增加。调查发现,总共有 60% 的人都有过这样的体验,而 35% 的人没有受到影响。


另一个令人失望的结果是,在将一个单体分解成不同的可管理部分后,非但没有获得更好的重新部署时间,而且大多数人发现重新部署时间超过 5 分钟;还有人超过 10 分钟。



在 java 虚拟机平台类别下,docker 是迄今为止最受欢迎的选择,占总体受访者的 41%。kubernetes 排在第二位,为 26%,而 vmware 位居第三,为 16%。jenkins 被评为最受欢迎 ci/cd 技术,为 46%;而 github actions 紧随其后,为 16%。


在其他类别中,亚马逊云科技是最受欢迎的 paas 供应商,tomcat 再一次成为应用服务器的首选,maven 是最受欢迎的构建工具,占 68%,gradle 占 23%,紧随其后。maven 比 2020 年的 44% 有所上升,gradle 比 2020 年的 47% 有所下降。这表明,虽然 gradle 被夸大其词,但对于一般的 java 开发来说,它被证明过于繁琐;最好坚持使用 android。


总结一下最有趣的发现,企业转向微服务,并不是因为启动和重新部署的时间更快,而是由于其他一些因素,如模块化和灵活性等。另一个值得注意的方面是,spring boot 依然是处理 java 微服务的主导方式,而其他较新的竞争对手必须覆盖很多领域才能达到相同的水平。这让我们开始思考 aot 和 graalvm 的使用情况。它是否被高估的低级炒作,或者说,它太新了,至今仍未被视为一种可行的替代方案?


最重要的结论是,尽管技术在不断地改变,但是没有人会迫不及待地去接受。这一点在大型企业中特别有共鸣,因为他们更倾向于稳定,而非创新。当然,在某些时候,他们最终也会踏上这条路,但是要花很多时间和周密的规划。


原文链接:



2022 年 4 月 08 日 14:336601

评论 2 条评论

发布
最好坚持使用 android
这句过于机器翻译了。原文的意思应该是gradle 比较难用,更适合于安卓开发使用
2022 年 05 月 20 日 18:04
回复
企业转向微服务,并不是因为启动和重新部署的时间更快,而是由于其他一些因素,如模块化和灵活性等. 这个是真的, 我们的好多java微服务启动起来需要5min ...............
2022 年 04 月 11 日 11:54
回复
没有更多了
发现更多内容

大规模 kubernetes 集群运维实践

大规模 kubernetes 集群运维实践

网站地图