The Lightweight Java Game Library provides a simple API to OpenGL, OpenAL, OpenCL and Game Controllers enabling the production of state of the art games for Windows, Linux and Mac. Version 2.9.0 contains a complete rewrite of the mac backend, support for FreeBSD, new OpenGL/OpenCL extension and bug fixes. The library is used by many high profile games such as Minecraft, Spiral Knights, Revenge of the Titans, Project Zomboid, Starsector, JMonkeyEngine, etc.

You are right about that one. These languages are designed for VM work, but nothing prevents one from translating VM bytecode to its native equivalent, no matter how inefficient it can get without the optimizations made possible by knowing the run-time state of the program at translation time.

However I'm not sure that AOT compilation can solve all the performance problems which are frequently encountere with these languages. Besides the issue of context discussed above, it would only eliminate the runtime compilation overhead of the VM, without tackling some other kinds of runtime inefficiencies which are intrinsic to those languages, such as garbage collection cycles.

You are right about that one. These languages are designed for VM work, but nothing prevents one from translating VM bytecode to its native equivalent, no matter how inefficient it can get without the optimizations made possible by knowing the run-time state of the program at translation time.

The fact that strong typed languages are usually mixed up with VM implementations is an unfortunate fact from young generations not understanding what compiler design is all about.

Strong typing or automatic memory management have nothing to do with VMs.

Besides the issue of context discussed above, it would only eliminate the runtime compilation overhead of the VM, without tackling some other kinds of runtime inefficiencies which are intrinsic to those languages, such as garbage collection cycles.

Using GC enabled languages means you need to code in a different way, just that.

Malloc and friends can be slower than reference counting/GC implementations, depending on the use cases. Not all compilers for languages with manual memory management have performant heap management.

Since my Oberon and Modula-3 days, I am firmly convinced that it is only a matter of time until the hard code C developers get replaced by developers that appreciate GC enabled systems programming languages, generation change will help the process.