QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

评论 2 条评论

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

【转载】图形化系统开发组件X-Series(一)——XrossUnit介绍

赫杰辉

一文搞定 Flink Job 的运行过程

shengjk1

flink flink源码 flink源码分析

知识分享:SQL注入的流程和步骤

Thrash

sql

Redis的适用场景简单剖析

大数据技术指南

redis 4月日更

软件测试——教育机构课程顾问常见黑话大全

程序员阿沐

程序员 软件测试 教育 机构 教育培训

简简单单才是真,初试 Svelte

LeanCloud

4行指令解决pip下载Python第三方库太慢问题(pip更换国内下载源)

不脱发的程序猿

Python pip 4月日更 Python库安装

阿里巴巴的“双11”高并发秒杀终极版教程!(Java语言设计)

Java架构追梦

Java 阿里巴巴 架构 面试 秒杀架构设计

智汇华云 | ArSDN打通软件定义数据中心的“任督二脉”

华云数据

GitHub惊现!JVM G1GC的算法+实现,90张图+33段代码,你的面试专属!

Java架构师迁哥

彻底搞懂ThreadLocal

千珏

Java 源码分析 多线程 ThreadLocal

分布式锁之Redis实现

Sakura

4月日更

一入爬虫深似海,从此早睡是路人

Thrash

Golang 对象池

escray

学习 极客时间 Go 语言 4月日更

2020年12月的面试经历:美团4面+字节4面(均已拿offer),面试真题分享

Java架构师迁哥

家务活中的python协程

行者AI

协程 python学习

聪明人的训练(二十二)

Changing Lin

4月日更

手把手教你从数据预处理开始体验图数据库

NebulaGraph

数据库 数据预处理

什么是Selenium?使用Selenium进行自动化测试

码语者

DevOps selenium

肝了15000字性能调优系列专题(JVM、MySQL、Nginx and Tomcat),看不完先收藏

北游学Java

Java MySQL nginx tomcat JVM

https如何使用python+flask来实现

华为云开发者联盟

Python flask https ssl HTTP协议

重磅来袭:Spring之RequestBody的使用姿势小结

学Java关注我

Java 编程 架构 技术 程序人生

华云大咖说 | 华云数据与数科网维携手共建国产云生态

华云数据

前端规范之路

白玉兰开源

大前端 开发规范

前端DDD总结与思考

白玉兰开源

大前端 DDD

从源码分析 MySQL 死锁问题入门

比伯

Java 编程 程序员 架构 计算机

0门槛成为“技术牛人”!星环科技线上分享课“星课堂”开播,快来报名,一探究竟

星环科技

人工智能 数据库 云计算 大数据 直播技术

GitHub开源:17M超轻量级中文OCR模型、支持NCNN推理

不脱发的程序猿

人工智能 GitHub 开源 OCR 4月日更

【转载】提高系统开发效率的“银弹”——X-series可视化大规模应用开发工具集

赫杰辉

轻松带你学习java-agent

华为云开发者联盟

Java Trace Java虚拟机 java-agent 挂载

前端⼤规模构建演进实践

白玉兰开源

架构 大前端

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