←back to thread

56 points mghackerlady | 1 comments | | HN request time: 0s | source
Show context
larsbrinkhoff ◴[] No.45989967[source]
What happened to

1. Sun's JavaStation, 2. ARM's Jazelle, ??? 3. Profit!

replies(4): >>45990000 #>>45990288 #>>45990667 #>>45993727 #
dehrmann ◴[] No.45990000[source]
It's more like JITs got good.
replies(1): >>45990334 #
ck45 ◴[] No.45990334[source]
I never understood why AOT never took off for Java. The write once run anywhere quickly faded as an argument, the number of platforms that a software package needs to support is rather small.
replies(5): >>45990420 #>>45990438 #>>45990583 #>>45990837 #>>45994530 #
1. gunnarmorling ◴[] No.45990583{3}[source]
> I never understood why AOT never took off for Java.

GraalVM native images certainly are being adopted, the creation of native binaries via GraalVM is seamlessly integrated into stacks like Quarkus or Spring Boot. One small example would be kcctl, a CLI client for Kafka Connect (https://github.com/kcctl/kcctl/). I guess it boils down to the question of what constitutes "taking off" for you?

But it's also not that native images are unambiguously superior to running on the JVM. Build times definitely leave to be desired, not all 3rd party libraries can easily be used, not all GCs are supported, the closed world assumption is not always practical, peak performance may also be better with JIT. So the way I see it, AOT compiled apps are seen as a tactical tool by the Java community currently, utilized when their advantages (e.g. fast start-up) matter.

That said, interesting work is happening in OpenJDK's Project Leyden, which aims to move more work to AOT while being less disruptive to the development experience than GraalVM native binaries. Arguably, if you're using CDS, you are using AOT.