Remix.run Logo
cyberax 4 hours ago

Excelsior JET did that 25 years ago: https://en.wikipedia.org/wiki/Excelsior_JET

It's a shame that Sun/Oracle never partnered with them to bring native apps. This could have saved Java on the desktop.

pjmlp 2 hours ago | parent | next [-]

They were not the only ones, see PTC, Aicas, IBM, and a few others.

The big difference until GraalVM and OpenJ9 became available as open source, was that all those vendors made AOT compilation a commercial feature, and thus most devs never cared they existed.

In fact GraalVM was one of the main reasons Excelsior JET eventually closed doors.

wahern 3 hours ago | parent | prev | next [-]

Don't forget GCJ. It wasn't removed from GCC until about 2016, a nearly 20-year long run, though interest had waned many years prior.

I don't remember if GCJ supported loading and running code dynamically with a built-in JIT or interpreter. I think it was just pure AOT, which caused some compatibility headaches.

java-man 3 hours ago | parent | next [-]

GCJ was great - I wrote a handset UI entirely in java for a startup in the early 2000's, basically android before android existed, using GCJ. I remember their native interface was somewhat more convenient to use than JNI.

I wish we had GCJ resurrected, now that the java libraries are GPL'd.

alex7o an hour ago | parent [-]

Just ask claude to port it to latest gcc :P, pls don't

cyberax 2 hours ago | parent | prev [-]

Yeah! I used it around 2003 to integrate a Java PDF parsing library into our C++ app.

Its biggest downside was the use of Boehm GC that had some issues with large heaps.

patwolf 3 hours ago | parent | prev [-]

IBM's J9 had AOT for a long time too. I wonder how JEP 544 compares.