> Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpreted mode.
Compiling from one language to another isnt particularly unusual, but compiling from one language to so many is very unusual. On first impression it sounds unserious—real compilers output machine code—it's tempting to denigrate it by calling it a transpiler. But there are a lot of advantages that come with this approach. You always have access to the full capabilities of your target platforms. From a single language you can write code that is massively portable while also targeting specific platforms with just an if statement.
The "real" compiler authors spend months working on linkage, calling conventions, runtimes, symbol mangling, allocators, and debuginfo trying to get their native code to link properly to the objective-c frameworks on iOS—and it never feels quite right. If you instead compile to objective-c, a lot of things get easier. It's a very pragmatic approach.