It does improve performance, but doesn't magically turn it into a ASM/C/C++ executable for the reasons set out above.
It does improve performance, but doesn't magically turn it into a ASM/C/C++ executable for the reasons set out above.
Isn't that, however, exactly what the Mono folks are doing with MonoTouch to get apps written in C# run on iOS (and approved in the App Store)?
C# -> IL -> Mono AOT* -> ARM binary -> xcode/LLVM -> normal iOS binary
* AOT = ahead of time compiler - like JIT, but... before it's needed. There is a linker step in there to remove a load of stuff too.
Works _great_.
Plus it won't be as fast as writing it in C/obj C as it will have garbage collection overhead, type checking, bounds checking, etc etc. (For iOS style UI apps this isn't a concern as they're mostly just thick clients to real calculations done elsewhere, so speed barely matters as you are just relying on the speed of UIKit for graphics anyway.)