首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

聊聊 Java 本地原生应用开发

在2024年3月的 TIOBE 开发语言排名中,Java 语言排名第4,较去年同期下降一名;Go 语言排名第8,较去年同期上升2名。

开发语言的排名反映着开发者和项目应用语言的趋势,它虽然不能全面地展示一门开发语言的流行程度、市场占有率等,但也能在一定程度上反应中语言的发展态势。

Go 语言在这几年的热门发展,一方面是它类同于 C++ 可以开发高性能的本地应用,另一方面则是云原生应用概念明确以后,在云原生应用的开发中,各种组件、框架越来越依赖于 Go 语言的这种高性能、高扩展,倒推了它的流行。

在云原生应用的这种催化下,各化语言都想在云计算的新一轮发展占据一席之地,每种语言、每个框架都想和云原生沾上边。

而 Java 也同样的做出了相应的改变。

JVM & GraalVM

Java 语言设计之初,就想做到平台无关,所以它的运行基于虚拟机,通过不同的平台的虚拟机解决平台差异问题,以实现:一次编译,到处运行。而 Java 最常用的虚拟机(即 JVM),是大名鼎鼎的 HotSpot。

但在云原生应用的大浪下,虚拟机的性能始终是无法与本地应用相比的。原因正是 Java 的设计机制中,JVM 解析的是 Java 编译生成的字节码,而原生语言,如 C++ 或 Go,编译生成的机器码。这二者的运行性能差异不可同日而语。

为了搭上云原生的大船,在 2019 年 Oracle 推出了新一代的虚拟机 GraalVM。GraalVM 在设计时,不仅支持 Java 和类 Java 语言的运行,还支持了 NodeJS 等的运行,极大的扩展了 GraalVM 生态体系。

但更重要的是,GraalVM 设计支持将 Java 应用(或类 Java 应用,如 Kotlin 语言应用)编译为机器本地应用(Native Image),以达到和 Go 语言一样的高性能及低资源消耗。

从发布之初到现在,GraalVM 非常强势,Spring Boot 3 框架也是完全支持 GraalVM 编译为本地应用(Native Image),而比 Spring Boot 更轻量的框架 Quarkus、Micronaut 也是强势发展。这些框架都定位于云原生框架,借由 GraalVM 的本地应用编译能力,试图为 Java 和类 Java 语言打开一片新的天地。

未来

Go 语言虽然在云原生应用的大潮下强势崛起,但不难看出,它更大的优势在于基础组件、基础框架的开发与迭代,而在 Java 传统的业务管理领域,Go 语言有着自己天然的弱势:生态不足。

比如,我们在 Java 体系下迭代发展成熟的流程工单体系,不可能为了拥抱云原生应用,就抛弃掉使用这些成熟框架开发的项目,而另起炉灶去用 Go 语言重写一套。

抛弃已有的软件资产,在商业上不见得是一种好的方式。有了 GraalVM 的加持,只要框架逐步支持上,开发者可以复用已有的代码,又能编译得到性能同原生本地应用接近的 Java 应用。就一点就是非常吸引人的。

目前, GraalVM 不仅提供了全套的使用、编译工具还提供了丰富的指导文档。在云原生应用发展大势下,Java 开发者有了 GraalVM 的加持,也将有着未来可期的发展。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OODoYY1AWy6h8akd6BuIcJ9Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券