Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Is there an equivalent to Java Grinder for C#?


The latest version of .NET has official AOT support.

https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...


Plenty of .NET versions have AOT support in different flavours,

- NGEN (part of .NET since day 1)

- MDIL (Windows 8 and 8.1 store apps, partially based on Sigularity)

- .NET Native (UWP, partially taken from Midori/Project N)

- Mono AOT (Xamarin and Blazor)

- IL2CPP / Burst (Unity)

- CosmOS

And now NativeAOT, which currently only supports CLI and libraries workloads.


Now I wonder if there are any AOT compilers for Java besides OP's (though it's of limited utility as it doesn't implement garbage collection) and GraalVM.


There's been plenty but they've fallen aside for various reasons.

- GCJ (iirc only pre 1.5-1.6 java support so never with generic versions, not sure if they ever implented JNI but relied on their own so libraries with native bindings had to be manually ported iirc)

- Excelsior JET was a strong option for a long time on desktops up until 2018, main selling point was resistance to decompilation but not sure if they ran afoul of Oracle licensing or couldn't keep up with the accelerated pace of JDK releases in later years.

(The below were options to various degrees for iOS developers)

- Avian VM ( https://readytalk.github.io/avian/ ), opensource and seems to be up but never really saw an uptake or proper debug tooling iirc, seems inactive by now.

- Robo VM was another strong option with strong support for IDE debuggers,etc since it was used by gamedevs and the initial libgdx author was involved in it. Sadly they were sold out to Xamarin shortly before MS bought out Xamarin and then promptly shut down since MS only had interest in Xamarin for their C# iOS/Android toolkits.

- RoboVM forks, luckily RoboVM core was liberally licensed so forks were possible for those working on mobile games with iOS ports even if the tooling wasn't as slick as the official RoboVM project (No idea if any of the open source variants have caught up, it was a bit chaotic initially with many forks).

- Intel had(have?) some AOT compiler for Java that was an option for libgdx developers for a while but RoboVM being more "native" had more eyes and no idea if Intel really had a business case for it's Java things ? (

(Funnily enough, I was actually doing an AOT one during late uni times to write a thesis on game GC's (and hoping to maybe commercialize), then Oracle bought out Sun and I wrote a JS AOT prototype instead. Hearing of Oracle vs Goog it felt sane but Oracle did showcase RoboVM later on so maybe it was silly)


Yes since around 2000, mostly suffered from being commercial offerings, thus only available in enterprise shops.

- Excelsior JET (one of the most known ones, nowadays out of business)

- Aonix (now gone, acquired by PTC)

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

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

- Android since version 5 (https://source.android.com/docs/core/runtime/jit-compiler). With version 7 it became JIT/AOT as mechanism to reduce compile times.

- J/Rockit had JIT caches (nowadays merged into OpenJDK)

- WebSphere Real Time and AS/400 JVM, nowadays lives on as OpenJ9 AOT (https://www.eclipse.org/openj9/docs/aot)

- Jikes RVM (https://www.jikesrvm.org/Resources/Presentations/)

- JX research OS (https://en.wikipedia.org/wiki/JX_(operating_system)), not really AOT, but everything gets compiled to native code when loaded, before use

There were also some hardware implementations using the JVM bytecode as Assembly,

- JOP (https://www.jopdesign.com)

- picoJava (https://en.wikipedia.org/wiki/PicoJava)

- ARM's Jazelle (https://en.wikipedia.org/wiki/Jazelle)


I also wonder how Java Grinder compares with GCJ. Looks like it targets a lot of 8-bit micros, whereas GCJ is mostly targeting 32-bit+ C machines (via GCC backends)? (To oversimplify a lot.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: