写点什么

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:096919

评论 2 条评论

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

十年磨一剑,墨菲安全正式发布开源项目murphysec

墨菲安全

开源安全

java培训关闭流方法有顺序吗

@零度

JAVA开发 包装流

为什么做开源需要懂异步协作?

腾源会

开源 腾源会

面试官:Redis的事务满足原子性吗?

码农参上

redis 事务 4月月更

都2022年了,HDFS为何还如此能战

华为云开发者联盟

大数据 hadoop hdfs 分布式文件系统 大数据存储

Test

haibin369

Excelize 发布 2.6.0 版本,功能强大的 Excel 文档基础库

xuri

golang Excel Apache POI Go 语言 Excelize

为啥JS/TS里都会有"use strict"

华为云开发者联盟

js ts 严格模式 use strcit 使用严格

快速尝鲜:RabbitMQ 搭建完就得用起来

阿Q说代码

RabbitMQ springboot 4月月更 消息确认机制

《手写Mybatis》第4章:Mapper XML的解析和注册使用

小傅哥

小傅哥 mybatis 工厂模式 建造者

不写代码,带你徒手开发一个健康打卡应用

华为云开发者联盟

无代码 AppCube 应用开发 健康打卡 可视化编排

web前端培训开发者要掌握的CSS 技巧有哪些

@零度

CSS 前端开发

一文了解垃圾回收算法中的引用计数算法

宇宙之一粟

垃圾回收算法 引用计数 4月月更

Linux驱动开发-编写PCF8591(ADC)芯片驱动

DS小龙哥

4月月更

超nei卷!连黑客勒索软件团伙都开始谈客户体验…

龙国富

黑客 客户体验 drakside 客户至上

敲重点!这些更新将会影响HarmonyOS原子化服务上架

HarmonyOS开发者

HarmonyOS 原子化服务

13个问题帮你选型 “客户体验管理SaaS平台”

龙国富

SaaS 选型 客户体验 CEM CXM

净推荐值(NPS)完整行动指南

龙国富

客户体验 NPS 净推荐值 北极星指标 客户忠诚度

状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02

vivo互联网技术

服务器 状态机

消息队列存储消息数据的MySQL表格设计

Geek_36cc7c

B 端 SaaS 产品自动化事件设计 - 规则表达式

龙国富

自动化 SaaS 正则 B端 规则表达式

spring-cloud 链路追踪

Rubble

4月日更

华为云GaussDB(for Influx)揭秘第五期:最佳实践之子查询

华为云开发者联盟

数据库 华为云 GaussDB(for Influx) 子查询 InfluxQL

10个商品图策略,引导亚马逊卖家提升客户购物体验

龙国富

电商 商品 亚马逊 客户体验

架构实战营作业 - 模块二

haibin369

「架构实战营」

使用和风天气 API 10分钟搭建天气预报数据看板

蒋川

API 天气api

自己动手写Docker系列 -- 5.5实现容器停止

Go Docker 4月月更

企业知识管理的解决方案

小炮

知识管理 企业知识管理 企业知识管理工具

脉冲能量|Committer 专访——李理:Apache Pulsar 项目“体验师”

Apache Pulsar

开源 云原生 Apache Pulsar Apache Pulsar 社区 运维‘

如何禁用XXE处理?

龙智—DevSecOps解决方案

漏洞扫描 代码安全 漏洞检测

模块八作业:设计消息队列存储消息数据的 MySQL 表格

王大胖

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