写点什么

2021 年 Java 热门趋势

  • 2022-01-29
  • 本文字数:2014 字

    阅读完需:约 7 分钟

2021年 Java 热门趋势

本文结合 Java 语言和生态的发展现状,分析了在云原生和无服务器架构的大趋势下,Java 和相关的支撑框架会有怎样的发展。


本文最初发表于Medium网站,由 InfoQ 中文站翻译分享。


2020 年的事实告诉我们,如今对未来进行预测是很天真的。但是,当涉及到中长期投资决策的时候,预测是一件非常重要的事情。对于开发人员来讲,规划自己的职业生涯并有效地投资时间也是至关重要的。因此,我们了解一下最重要的 Java 趋势,这将有助于我们保持正确的方向。


在 Web、桌面和移动开发以及嵌入式软件领域,Java 依然是最流行的语言之一。在 2017 年 Kotlin 进入安卓开发领域之前,Java 是唯一的官方语言。要在谷歌应用商店中找出使用 Java 的应用的份额并不那么容易。因为像 React Native、Cordova、Phonegap、Iconic 这样的混合应用程序在底层会使用 Java,但是其业务逻辑是使用 JS 的。


另外,我们也很难找到有力的参考数据,但是全球11个流量最大的网站中,其中有8个是使用Java的,至少后端编程是使用 Java 的。这一事实让我们清楚地看到了它的实力和受欢迎程度。此外,对企业来讲,Tomcat 和 Elasticsearch 分别是最受欢迎的 web 服务器和搜索引擎,它们也在使用 Java。与此同时,尽管是最受欢迎的可选方案之一,并且经过了时间的考验,但 Java 也在适应云部署和容器化等大趋势。我们逐步深入地研究一下。

一切都在上云,Java 也不例外


云计算的趋势在新冠肺炎大流行之前早就已经出现了,但是这一切正在加速发展。平均来看,每个人每天使用36个基于云的服务81%的企业都在研究他们的多云战略。按照 Gartner 的说法,公共云服务的支出将从2020年的2700亿美元增长到2021年的3323亿美元,增幅超过 23%。


Java 领域对此已经做出了什么样的反应,接下来又会怎么样发展呢?你可能已经注意到,由于容器化工作负载的兴起,AWS 和其他一些云服务的采用率正在不断增加。因此,云原生和支持 Kubernetes 的框架,如 Micronaut、Quarks 和 Spring Boot 正在变得更加流行。

Spring Boot


Spring Boot是这个领域的领导者,它消除了搭建 Spring 应用程序所需的模板化配置。它的一些特性使得应用的构建和配置变得更加简单,比如嵌入式的服务器以及带有倾向性的“starter”依赖。健康检查、度量指标以及外部配置都是使用它所能带来的额外收益。

Micronaut


据报道,Micronaut是第一个在无服务器架构中高效运行的 Java 平台。虽然在受欢迎程度上它还无法与 Spring Boot 竞争,但是它在 GitHub 上已经拥有大约 5000 颗星。尽管 Micronaut 有一些类似于 Spring 的特性,但它最大的特点是编译时的依赖注入机制。这个框架会在编译时建立其依赖注入数据,这与大多数框架是不同的。因此,我们可以实现更小的内存占用和更快的应用程序启动。


除此之外,Micronaut 还对客户端和服务器的反应式编程提供了良好的支持。RxJava 和 Reactor 项目都能得到支持。它还支持多种服务发现工具,如 Eureka 和 Consul,以及不同的分布式跟踪系统,如 Zipkin 和 Jaeger。

Quarkus


Quarkus 由红帽公司于 2019 年发布,在 GitHub 上拥有超过 9000 颗星。InfoQ 的 Java 编辑 Erik Costlow 指出,Quarkus正在使用云、Jakarta EE 和 GraalVM 中最好的组成部分。它可以自动创建容器,并具有快速重新加载的功能。除此之外,借助其插件生态系统,Quarkus 可以连接到其他系统中。如果需要的话,你还可以查阅每个插件的详细文档。它支持 Kubernetes、Hibernate、OpenShift、Kafka 和 Vert.x。


借助 Quarkus,开发者可以专注于代码,而不是技术工作以及与资源进行交互。此外,它是建立在标准之上的,所以你不需要学习任何新东西。

GraalVM


GraalVM和静态编译是走向云端的关键构件。GraalVM 拥有提前编译(AOT)等功能,使用了最流行语言的功能和库,并提供了调试、监控、剖析和资源消耗优化等工具。Spring、Quarkus、Micronaut 和 Helidon 框架都能与 GraalVM 集成。


Java 发布相关的更新


Java 8 和 11 仍然是目前最流行的版本。根据JetBrains 2020的调查,75%的受访者选择了 Java 8,Java 11 版本则排在第二位。


JDK 16 在 2021 年 3 月发布。它拥有 17 项增强功能,如 JVM 改进、新工具、库分类、孵化器和预览功能,以提高我们的生产力。SE 15 包括以下改进。


使用 Record 来声明类,它会自动生成 toString、hashCode、getter 和 equals 方法以及构造器。


隐藏类(Hidden class),通常是在运行时动态生成的,不能通过名称来访问,也不能将其与其他类的字节码进行链接。


另外,JDK 17 也已经在 2021 年的 9 月份发布,目前是最新的长期维护版本。


由于甲骨文公司在发布后六个月以上不提供零成本的 Java 二进制文件,市场上选择了非甲骨文公司的供应商,如 AdoptOpenJDK、Azul 和 Amazon。

总结


Java 紧跟云计算和无服务器架构等大趋势,所以云原生支撑框架的发展势头很好。Micronaut、Quarks 和 Spring Boot 都位列其中,它们能够让开发者专注于代码而不是基础设施。Java 8 LTS 仍然是最受欢迎的,但 JDK 17 也已经于 2021 年 9 月发布。至少,到目前为止,还没有任何趋势可以击败 Java 8。


原文链接:


https://medium.com/sciforce/top-java-trends-in-2021-ac7aa25e5362

2022-01-29 15:097176

评论 2 条评论

发布
用户头像
现在java8还是最流行的jdk版本嘛?
2022-02-15 10:50
回复
看JetBrains的2021年调查报告,是这样的,参见:https://www.jetbrains.com/lp/devecosystem-2021/java/
2022-02-16 10:08
回复
没有更多了
发现更多内容

融云「百幄」之数字人,升级交互体验的「新同事」

融云 RongCloud

AI 通信 数字化

对于Ajax在MUI框架中的用运以及单 webview 模式中的下拉刷新功能探究

恒山其若陋兮

mui 11月月更

冷冷清清的双十一,电商促销节为何被消费者逐渐抛弃

石头IT视角

应用链如何成为 Web3 的“潜力链”

One Block Community

区块链 开发者 区块链应用 云存储 web3

【上】提高组件库Level必做好这六件事

小鑫同学

前端 组件库 11月月更

动态路由协议(二)

我叫于豆豆吖.

11月月更

链路状态路由协议 OSPF (一)

我叫于豆豆吖.

11月月更

Python进阶(四十九)初识Flask Blueprint

No Silver Bullet

Python flask 11月月更 Blueprint

为什么要做用户留存分析

穿过生命散发芬芳

用户留存 11月月更

Flowable 外置的 HTML 表单怎么玩?

江南一点雨

Java spring flowable JavaEE

2022昇腾AI创新大赛圆满收官,看这届评委怎么说?

极客天地

2022下半年《软考-系统架构设计师》备考经验分享

劼哥stone

软考 系统架构师

MUI框架的上拉加载的深入探索和实战运用

恒山其若陋兮

mui 11月月更

Python进阶(五十)浅析Flask运行原理

No Silver Bullet

Python flask 11月月更

「Go实战」一文带你搞懂从单队列到优先级队列的实现

Go学堂

golang 开源 程序员 优先级队列 11月月更

Helm部署的服务如何修改配置

程序员欣宸

Kubernetes Helm 11月月更

Python进阶(五十二)Flask使用pymysql连接MySQL数据库

No Silver Bullet

Python MySQL pymysql 11月月更

uni-app 性能优化实战之逻辑层条件编译的生产环境

恒山其若陋兮

11月月更 uni

[力扣] 剑指 Offer 第三天 - 左旋转字符串

陈明勇

Go 数据结构与算法 力扣 11月月更

promise执行顺序面试题令我头秃,你能作对几道

loveX001

JavaScript

图解漏桶(LeakyBucket)限流器的实现原理

Go学堂

golang 程序员 个人成长 限流 漏桶

流程表单初体验

江南一点雨

Java spring springboot flowable

东方通Tongweb中间件Linux环境部署

@下一站

技术 中间件 linux 文件权限控制 Java core 11月月更

2022-11-17:组合两个表。请写出sql语句,执行结果是{“headers“: [“first_name“, “last_name“, “city“, “state“], “values“: [

福大大架构师每日一题

数据库 福大大

【下】提高组件库Level必做好这六件事

小鑫同学

前端 组件库 11月月更

【愚公系列】2022年11月 微信小程序-app.json配置属性之其他属性

愚公搬代码

11月月更

docker安装WordPress(一)

蜗牛也是牛

简单时序逻辑电路

芯动大师

Verilog 11月月更 锁存器

算法题学习---单链表的排序

桑榆

算法题 11月月更

Postman工具介绍

阿泽🧸

Postman 11月月更

2021年 Java 热门趋势_架构_Sciforce_InfoQ精选文章