本文结合 java 语言和生态的发展现状,分析了在云原生和无服务器架构的大趋势下,java 和相关的支撑框架会有怎样的发展。
本文最初发表于,由 infoq 中文站翻译分享。
2020 年的事实告诉我们,如今对未来进行预测是很天真的。但是,当涉及到中长期投资决策的时候,预测是一件非常重要的事情。对于开发人员来讲,规划自己的职业生涯并有效地投资时间也是至关重要的。因此,我们了解一下最重要的 java 趋势,这将有助于我们保持正确的方向。
在 web、桌面和移动开发以及嵌入式软件领域,java 依然是最流行的语言之一。在 2017 年 kotlin 进入安卓开发领域之前,java 是唯一的官方语言。要在谷歌应用商店中找出使用 java 的应用的份额并不那么容易。因为像 react native、cordova、phonegap、iconic 这样的混合应用程序在底层会使用 java,但是其业务逻辑是使用 js 的。
另外,我们也很难找到有力的参考数据,但是,至少后端编程是使用 java 的。这一事实让我们清楚地看到了它的实力和受欢迎程度。此外,对企业来讲,tomcat 和 elasticsearch 分别是最受欢迎的 web 服务器和搜索引擎,它们也在使用 java。与此同时,尽管是最受欢迎的可选方案之一,并且经过了时间的考验,但 java 也在适应云部署和容器化等大趋势。我们逐步深入地研究一下。
一切都在上云,java 也不例外
云计算的趋势在新冠肺炎大流行之前早就已经出现了,但是这一切正在加速发展。平均来看,每个人每天使用,都在研究他们的多云战略。按照 gartner 的说法,,增幅超过 23%。
java 领域对此已经做出了什么样的反应,接下来又会怎么样发展呢?你可能已经注意到,由于容器化工作负载的兴起,aws 和其他一些云服务的采用率正在不断增加。因此,云原生和支持 kubernetes 的框架,如 micronaut、quarks 和 spring boot 正在变得更加流行。
spring boot
是这个领域的领导者,它消除了搭建 spring 应用程序所需的模板化配置。它的一些特性使得应用的构建和配置变得更加简单,比如嵌入式的服务器以及带有倾向性的“starter”依赖。健康检查、度量指标以及外部配置都是使用它所能带来的额外收益。
micronaut
据报道,是第一个在无服务器架构中高效运行的 java 平台。虽然在受欢迎程度上它还无法与 spring boot 竞争,但是它在 github 上已经拥有大约 5000 颗星。尽管 micronaut 有一些类似于 spring 的特性,但它最大的特点是编译时的依赖注入机制。这个框架会在编译时建立其依赖注入数据,这与大多数框架是不同的。因此,我们可以实现更小的内存占用和更快的应用程序启动。
除此之外,micronaut 还对客户端和服务器的反应式编程提供了良好的支持。rxjava 和 reactor 项目都能得到支持。它还支持多种服务发现工具,如 eureka 和 consul,以及不同的分布式跟踪系统,如 zipkin 和 jaeger。
quarkus
quarkus 由红帽公司于 2019 年发布,在 github 上拥有超过 9000 颗星。infoq 的 java 编辑 erik costlow 指出,正在使用云、jakarta ee 和 graalvm 中最好的组成部分。它可以自动创建容器,并具有快速重新加载的功能。除此之外,借助其插件生态系统,quarkus 可以连接到其他系统中。如果需要的话,你还可以查阅每个插件的详细文档。它支持 kubernetes、hibernate、openshift、kafka 和 vert.x。
借助 quarkus,开发者可以专注于代码,而不是技术工作以及与资源进行交互。此外,它是建立在标准之上的,所以你不需要学习任何新东西。
graalvm
和静态编译是走向云端的关键构件。graalvm 拥有提前编译(aot)等功能,使用了最流行语言的功能和库,并提供了调试、监控、剖析和资源消耗优化等工具。spring、quarkus、micronaut 和 helidon 框架都能与 graalvm 集成。
java 发布相关的更新
java 8 和 11 仍然是目前最流行的版本。根据,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。
原文链接:
评论 2 条评论