20 years ago the Oberon variants, Modula-2, Modula-3, Ada, Delphi, Eiffel, Visual Basic 6 were all AOT compiling to native code with their canonical toolchains.<p>Than Java and .NET became widespread, and the return to VM craziness started, like the early days of P-Code VMs.<p>Now 20 years later Microsoft finally supports .NET Native (ngen was only meant for faster startups) and has AOT in mobile phones since version 8.<p>Google replaced Dalvik with ART and Oracle is finally following the commercial JDKs in AOT support for Java 10+.<p>Then we have the new kids on the block, Swift, Go, Rust, D, Nim, OCaml, Haskell, ATS.