新的虚拟机平台GraalVM,编程语言可以无缝沟通了

1. 前言

在许多年前,一群不需要产出的IT学术研究人员搞了一个有趣的实验性项目叫MaxineVM,它是 一个用Java实现的元循环Java虚拟机。其实我也不知道这么高端的名字是啥意思,反正是一种研究性质的看起来很牛X很前沿的虚拟机,而Graal就是其中名不见经传的编译器。Oracle投入了不少的钱和时间鼓捣了这个项目,其中一些研究成果看起来不错,他们就孵化了一个叫GraalVM的产品,看看有没有商业价值,到现在为止差不多三年了。随着编程技术的发展其中的一些理念也顺应了形势,开始有点眉目了。

2. “全能”的GraalVM

GraalVM 是一个跨语言的通用虚拟机,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其它像 JavaScript、Ruby、Rust、Python 和 R 语言等。它消除了编程语言之间的隔离。

GraalVM system diagram

这些语言可以通过GraalVM平台进行直接互操作,并在同一内存中传递数据。

在目前的GraalVM 21.0 引入了一个新的 JVM 实现 Java on Truffle,这是用Java编写的虚拟机。这些不同的编程语言被Truffle(一种语言实现框架)进行统一的语法解释,交给Graal的JIT编译并交给运行时执行,从运行时的角度上来看这些语言没有任何区别的。

还有一些特性超出了我的认知能力,你可以到官方博客去了解。

你甚至可以使用GraalVM将Java编译成可执行程序。

3. 发行版本与环境

目前GraalVM分为开源的CE版本和收费的EE版本,它们分别基于OpenJDK和OracleJDK的8和11版本,可以运行在Linux、 Linux on ARM 64bit、MacOS和Windows中。我在视频号的相关视频中也进行了Windows下的安装演示,感觉跑起来挺简单的,你可以尝试一下。

4. GraalVM能干什么

GraalVM的野心还是有的。

  • 让Java程序运行的更快更具有扩展性。

  • 多语言混合编程

  • 在JVM上运行原生语言

  • 开发云原生应用

  • 微服务运行时平台

  • 创建自己的语言

  • FaaS

5. 那么代价是什么

凡事有利有弊,对于多语言、跨平台、云原生的支持也需要更多的兼容性和编译解释的优化。目前在各个语言的性能基准上还不能统一,语言之间互操作的协议还需要完善,甚至还要牺牲特定编程语言的一些特性,比如Java Native Image目前无法使用动态加载,另外GraalVM也还没有经过大规模的生产实践,还有一个问题就是这是Oracle的产品????。但是GraalVM一直在进步,在五年之内GraalVM很有可能进入面试题豪华套餐。我是:码农小胖哥 多多关注分享更多有用的编程资讯。

Java开始摆脱字节码的束缚迈向云原生时代

2021-03-07

方法论:这些年不少程序员同学都是这么跟我提问题的

2021-03-06

Spring Security 实战干货:微信小程序登录与Spring Security结合的思路分享

2021-03-04

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GraalVM 是一种创性的编程平台,可为不同的编程语言提供统一的运行环境。它支持众多编程语言,例如JavaJavaScript、Python、Ruby等。GraalVM 最大的特点是其高度性能和灵活性。 GraalVM 引擎是该平台的核心部分,它使用即时编译技术,将解释执行的代码实时转换为本地机器代码,从而提供极高的性能。这使得不仅在JVM上运行的Java代码能够获得性能的提升,同时其他语言也能享受到类似的优势。 另外一个特点是在 GraalVM 上运行的应用可以直接与其他语言进行交互,而无需进行复杂的集成工作。这意味着开发人员可以将各种语言的代码混合在一起编写,从而提高代码的灵活性和可重用性。无论是构建嵌入式系统、开发桌面应用程序、创建云本地应用程序,还是研究编程语言技术,GraalVM 都能提供有效的解决方案。 GraalVM 还拥有强大的生态系统,提供了许多工具和库来支持开发人员。其中包括GraalVM Native Image,它将Java应用程序编译成本机可执行文件,极大地减小了应用程序的启动时间和内存占用。此外,GraalVM 还提供了用于性能分析和调试的工具,让开发人员能够更加方便地优化和调试他们的代码。 总之,GraalVM 是一个引人注目的编程平台,通过提供高性能和灵活性,使得开发人员能够更加轻松地构建复杂的应用程序,并实现不同编程语言之间的无缝集成。无论您是Java开发人员还是对多语言编程感兴趣的探索者,GraalVM 都值得一试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值