写点什么

2022 年 Java 将何去何从?

  • 2022-04-08
  • 本文字数:2140 字

    阅读完需:约 7 分钟

2022 年 Java 将何去何从?

自从我们在《2020 年 Java 将何去何从》(Where's Java Going In 2020)中深度探讨 Java 生态系统以来,已经有一段时间了。JRebel 最新发布的《2022 年 Java 发展趋势和分析》报告(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 的 2020 年报告相比,情况发生了一些变化,该报告评论道:


看到我们的调查对象中有多少人在为 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 的使用情况。它是否被高估的低级炒作,或者说,它太新了,至今仍未被视为一种可行的替代方案?


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


原文链接:


https://www.i-programmer.info/news/80-java/15317-wheres-java-going-in-2022.html

2022-04-08 14:339328

评论 2 条评论

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

TCP两次挥手,你见过吗?那四次握手呢?

C++后台开发

网络编程 网络协议 TCP/IP 后端开发 C++开发

能源行业的数字化“新”运维

博睿数据

AIOPS 智能运维 博睿数据 能源行业

联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点

科技大数据

华为nova 10系列支持应用安全检测功能 筑牢手机安全防火墙

科技汇

NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读

阿里云CloudImagine

音视频 直播 视频编码

你可能不知道,我是如何将一个老系统的kafka消费者服务的性能提升近百倍的

Java全栈架构师

Java kafka 程序员 面试 架构设计

英特尔集成光电研究最新进展推动共封装光学和光互连技术进步

科技之家

python小知识-python泛函数

AIWeker

Python python小知识 7月月更

实战模拟│JWT 登录认证

经验分享 JWT 开发语言 7月月更 跨域认证

uni-app与uviewUI实现仿小米商城app(附源码)

优秀的李

小程序 uniapp 7月月更 uviewui

激进技术派 vs 项目保守派的微服务架构之争

BoCloud博云

微服务 微服务架构 云原生 istio 服务网格

整理混乱的头文件,我用include what you use

华为云开发者联盟

c++ 开发 C语言 技能

在线SQL转Excel(xls/xlsx)工具

入门小站

工具

输入的查询SQL语句,是如何执行的?

华为云开发者联盟

MySQL sql 开发 语句

Nebula Importer 数据导入实践

NebulaGraph

图数据库 数据导入 Nebula Graph

linux实战清理挖矿病毒kthreaddi

入门小站

Linux

在线文本行固定长度填充工具

入门小站

工具

应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设

SelectDB

数据库 数据中台 Apaache Doris

一文掌握数仓中auto analyze的使用

华为云开发者联盟

数据库 sql 后端 analyze

“只跑一趟”,小区装维任务主动推荐探索

鲸品堂

运维

使用 MyBatis 操作 Nebula Graph 的实践

NebulaGraph

mybatis 图数据库 Nebula Graph

解密函数计算异步任务能力之「任务的状态及生命周期管理」

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

被忽视的问题:测试环境配置管理

老张

软件测试 测试环境治理

字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验

字节跳动终端技术

字节跳动 前端

DeFi生态NFT流动性挖矿系统开发搭建

薇電13242772558

NFT DeFi流动性挖矿

CANN算子:利用迭代器高效实现Tensor数据切割分块处理

华为云开发者联盟

人工智能 算子 迭代器

Numpy 的仿制 2

祖维

c slice Numpy

Python 入门指南之使用 Python 解释器

海拥(haiyong.site)

7月月更

同事悄悄告诉我,飞书通知还能这样玩

Jianmu

自动化 建木CI 飞书通知 定时

LeaRun.Java快速开发平台 高效代码自动化生成

力软低代码开发平台

上线首月,这家露营地游客好评率高达99.9%!他是怎么做到的?

天天预约

小程序 SaaS 线上预约 预约工具 露营

2022 年 Java 将何去何从?_架构_Nikos Vaggalis_InfoQ精选文章