Since their introduction around 2000, AOT compilers have been special purpose.
There are several features in the platform for dynamic code generation that are very hard to make work in an AOT scenario.
There are several features in the platform for dynamic code generation that are very hard to make work in an AOT scenario.
Graal native gives up the benefits of JIT for fast startup. It might be a useful tradeoff for some but it is not a universal solution.
I think the next step for Java will be more people shifting to using ZGC which automatically releases unused heap back to the OS where the current default (G1) doesn't.
[0] https://cl4es.github.io/2019/11/20/OpenJDK-Startup-Update.ht...