I'm happy to see usable non x86 hardware ! But we still have to solve emulation. I wonder if there is a way to decompile and recompile binaries. In theory it SHOULD be possible to convert what the CPU is asked to do, back to what the program does, and then convert it to another CPU.
An implementation like this would have a huge impact on new platform giving them a fighting change, allow competition without vendor lock-in.
Machine code translation is exactly how Intel Atom Android phones support apps containing native ARM code. Intel has a translator from ARM to x86 or x86_64 called Houdini. (I never managed to find any detailed information about it, it's propriety). Even if you're developing an app for Android using the NDK you may not realise that your phone doesn't have an ARM processor. Few people bother to ship x86 binaries, and the fact that works so well is why they still don't even as x86 devices become more common (they're mostly tablets). Compatibility is around 80% of apps [0], and the performance hit is somewhat substantial (e.g. 2x) but doesn't matter for most apps.
An implementation like this would have a huge impact on new platform giving them a fighting change, allow competition without vendor lock-in.