As a Java developer trying out Graal/Truffle, I remember reading this article and panicking. But rest assured: GraalVM, Oracle JDK (Java SE) and OpenJDK are different things. :) Quoting from Christian Wirth on Slack:
The quoted message is from the Java team (which the GraalVM team is not part of), that they will discontinue the Graal JIT that was part of OracleJDK. If you were using this setup, you need to switch to GraalVM now.
It does not affect our GraalVM releases; we will continue to work on GraalVM JIT, Native Image, and Languages. We will evaluate how to improve our releases to serve our users and their use cases best.
My understanding is that:
Graal itself is a compiler library that you can use with any JDK (with JVMCI support) to enable a JIT compiler written in Java
| JDK | Graal | Base | Use Graal? |
|------------+---------+------------+------------------------|
| GraalVM EE | Bundled | Oracle JDK | Enabled by default |
| GraalVM CE | Bundled | OpenJDK | Enabled by default |
| Oracle JDK | Bundled | / | Enabled via VM options |
| OpenJDK | No | / | Enabled via VM options |
This article seems to me to be mostly about Oracle JDK: previously they bundle the Graal compiler, but will probably not continue to do so.
By the way, GraalVM has released GraalVM Community Edition 25. And from what I read on Slack, no, I don't think native images, Graal, GraalVM or Truffle-based languages are going away.
I'm not familiar with Javaland's internal politics so the ramifications of this announcement are a little difficult to parse. Notably:
GraalVM Early Adopter technology, including Native Image, is being discontinued for Java SE Product customers. The goals of improving the startup time, time to peak performance, and footprint of Java programs are being pursued further in OpenJDK’s Project Leyden as a standard part of Java. Customers seeking more information should reach out to Oracle Support.
This is fairly astonishing. It's obvious that the idea of compiling Java ahead-of-time would have its haters (Thomas Wuerthinger alluded to this here in his Strange Loop 2023 talk) but my outsider perspective is that native-image is amazing and relatively popular? This reads like a political coup from the entrenched JIT interests (a ridiculous sentence to type but once you've seen software project drama, well... the fights are so vicious because the stakes are so low, as they say).
The GraalVM team are transitioning to focus on non-Java Graal Languages including GraalPy and GraalJS. Details are expected to be announced later.
So the idea of Java running as a meta-circular evaluator on top of Graal Truffle (similar to PyPy) also seems dead - or at least, no longer blessed by Oracle. This is odd in light of the native-image announcement because Truffle still is a JIT system, but it would replace the existing C++ HotSpot VM. Which segues into...
Oracle JDK 24 was the final release to include the experimental and optional Graal JIT. We encourage any customers using the Graal JIT to migrate to the Oracle JDK JIT. Java SE Product customers may reach out to Oracle Support for migration-related assistance.
The victor in this internal Java political struggle is a gigantic C++ project. lol
Like I said this is hard to parse for an outsider so this could all be totally uninformed nonsense. My interest in Graal is mostly around Truffle (and also the possibility of using native-image to expose a C API) which isn't mentioned directly in this post.
--
It's not dead at all, I was reassured of that. In fact, it looks like it has been promoted.
What you have linked is a blog by the Java "product" team at Oracle. It's slightly biased, and you need to read it in the context of impact to their JDK product offerings.
It's not widely known, but the Oracle JDK included the GraalVM JIT (the option to use the Graal compiler for just in time compilation at runtime). Looks like this option possibly didn't have the business success they expected - sadly as in some contexts it was very interesting - but it's a healthy process for such projects to refocus priorities on think of the potential on wider scale.
The GraalVM project and especially native-image and Truffle aren't going anywhere, in fact I love that they'll be able to focus more on such aspects which are more interesting for Quarkus. I don't mean to go too much in technical details, but having the requirement of being able to integrate as a JIT was very restrictive on the potential for improving other areas.
Remember also it's an OSS project, we at Red Hat and IBM are also maintainers through Mandrel and direct contributions. We also have our own commercial support offering so that should reassure that this project is considered strategic by many parties: it would be difficult to kill even if Oracle were to stop showing interest (which it didn't). There are several other companies making significant contributions as well, signalling interest - not least, the Amazon engineering team also made great improvements, and there's many more parties.
Finally, I heard of many other Oracle groups leveraging GraalVM based technologies - that should be enough to dispel any doubts.
The more I read the more I think this blog post was intentionally vaguely written to not-quite-imply that GraalVM and native-image are dead, so as to generate further misunderstanding and discussion along those lines. I regret contributing to this. Pretty vicious, actually. Not a good showing by author Donald Smith here.
This definitely reads as the kind of typical entreprise-speak that announces that a project is, in fact, being discontinued internally. My best guess is that GraalVM is about to die.
As a Java developer trying out Graal/Truffle, I remember reading this article and panicking. But rest assured: GraalVM, Oracle JDK (Java SE) and OpenJDK are different things. :) Quoting from Christian Wirth on Slack:
My understanding is that:
Graal itself is a compiler library that you can use with any JDK (with JVMCI support) to enable a JIT compiler written in Java
This page (for Truffle devs) explains the situation for some JDK:
This article seems to me to be mostly about Oracle JDK: previously they bundle the Graal compiler, but will probably not continue to do so.
By the way, GraalVM has released GraalVM Community Edition 25. And from what I read on Slack, no, I don't think native images, Graal, GraalVM or Truffle-based languages are going away.
I'm not familiar with Javaland's internal politics so the ramifications of this announcement are a little difficult to parse. Notably:
This is fairly astonishing. It's obvious that the idea of compiling Java ahead-of-time would have its haters (Thomas Wuerthinger alluded to this here in his Strange Loop 2023 talk) but my outsider perspective is that native-image is amazing and relatively popular? This reads like a political coup from the entrenched JIT interests (a ridiculous sentence to type but once you've seen software project drama, well... the fights are so vicious because the stakes are so low, as they say).
So the idea of Java running as a meta-circular evaluator on top of Graal Truffle (similar to PyPy) also seems dead - or at least, no longer blessed by Oracle. This is odd in light of the native-image announcement because Truffle still is a JIT system, but it would replace the existing C++ HotSpot VM. Which segues into...
The victor in this internal Java political struggle is a gigantic C++ project. lol
Like I said this is hard to parse for an outsider so this could all be totally uninformed nonsense. My interest in Graal is mostly around Truffle (and also the possibility of using native-image to expose a C API) which isn't mentioned directly in this post.
FROM REDDIT /r/quarkus/
https://www.reddit.com/r/quarkus/comments/1nib3r9/native_image_is_dead_detaching_graalvm_from_the/
-- It's not dead at all, I was reassured of that. In fact, it looks like it has been promoted.
What you have linked is a blog by the Java "product" team at Oracle. It's slightly biased, and you need to read it in the context of impact to their JDK product offerings.
It's not widely known, but the Oracle JDK included the GraalVM JIT (the option to use the Graal compiler for just in time compilation at runtime). Looks like this option possibly didn't have the business success they expected - sadly as in some contexts it was very interesting - but it's a healthy process for such projects to refocus priorities on think of the potential on wider scale.
The GraalVM project and especially native-image and Truffle aren't going anywhere, in fact I love that they'll be able to focus more on such aspects which are more interesting for Quarkus. I don't mean to go too much in technical details, but having the requirement of being able to integrate as a JIT was very restrictive on the potential for improving other areas.
Remember also it's an OSS project, we at Red Hat and IBM are also maintainers through Mandrel and direct contributions. We also have our own commercial support offering so that should reassure that this project is considered strategic by many parties: it would be difficult to kill even if Oracle were to stop showing interest (which it didn't). There are several other companies making significant contributions as well, signalling interest - not least, the Amazon engineering team also made great improvements, and there's many more parties.
Finally, I heard of many other Oracle groups leveraging GraalVM based technologies - that should be enough to dispel any doubts.
The more I read the more I think this blog post was intentionally vaguely written to not-quite-imply that GraalVM and native-image are dead, so as to generate further misunderstanding and discussion along those lines. I regret contributing to this. Pretty vicious, actually. Not a good showing by author Donald Smith here.
This definitely reads as the kind of typical entreprise-speak that announces that a project is, in fact, being discontinued internally. My best guess is that GraalVM is about to die.