Hacker News new | ask | show | jobs
by pjmlp 1278 days ago
Then use an AOT compiler, plenty of those for JVM since 2000.

While one can excuse themselves that they were commercial, GraalVM native image, and OpenJ9 offer free beer alternatives.

2 comments

I looked into using Graal one time. Many of the dependencies I used were not compatible. I also encounter weird bugs with any of the OpenJ* alternatives. In Go, everything just works.
The JVM proponents are usually being dishonest when they compare Java/Kotlin AOT compilation to Go. They know very well that a large number of popular libraries either outright don't work or have severe restrictions when using AOT. It's also common to run into bugs since Graal is relatively new and only a miniscule percentage of the Java community uses it. It's not even remotely close to Go where everything can be assumed to work.
No we aren't, because there have been commercial compilers since around 2000, with Excelsior JET being one of the first ones, sadly out of business.

However, PTC and Aicas are still in business,

https://www.ptc.com/en/products/developer-tools/perc

https://www.aicas.com/wp/products-services/jamaicavm/

IBM's commercial one is now freely available on OpenJ9,

https://www.eclipse.org/openj9/docs/xaot/

Finally, if you are using a modern Android phone, an AOT compiler is in the box since Android 5, and it was modified into a mixed JIT with AOT compilation on rest since Android 7.

GraalVM happens to be the evolution of MaximeVM, and certainly not the only game in town.

I was just reading that Spring 6 introduces Ahead-Of-Time compilation, enabling first-class support for GraalVM native images with Spring Boot 3. So hopefully the situation is improving.
You're totally missing the point of the niche in question.
Indeed, compiling to native code is missing the question apparently.

Or is the niche not being able to understand JVM languages, that expect developers to have PhD skill levels, as per Rob Pike's own words?

So they're missing the niche of "being native", by suggesting... using an AOT (= native) JVM compiler? Meaning making essentially every JVM language native?