I suppose an interesting question would be how hard would it have been to standardise on the PNaCl bytecode format and use that as the input to ${FOO}monkey
I suppose an interesting question would be how hard would it have been to standardise on the PNaCl bytecode format and use that as the input to ${FOO}monkey
Or, you know, it could be like Mozilla's vice president of products said about NaCl: "These native apps are just little black boxes in a webpage."
In other words, Flash reincarnated.
Who cares? Asm.js apps are little black boxes.
But asm.js is a good backdoor. Good luck getting some third party bytecode added to MS's and Apple's browsers. There was a fairly popular bytecode used in web apps: Java.
At least two, actually: Flash is another. Arguably better performing and more generally successful. And both of them were mostly open... freely targetable as runtimes, and almost freely re-implementable.
With as much hate as both of them have had, I find it a little weird when someone talks about doing it again, but then again, maybe the people who hated Flash aren't the same people who want a Google VM.
Or maybe they think third time's the charm.
I specifically listed freedom of choice as a bytecode benefit for implementors.
You can have bytecode and pipe it through a separate front-end into your JavaScript JIT compilation pipeline.
You can have a separate compilation pipeline as well, if you think it is better.
I fixed the comment above.
Surely LLVM will produce better code than a JavaScript JIT on non-dynamic code, since it's designed for it.
OTOH the Asm.js approach has the advantages of backward compatibility and not being forced to forever support a specific LLVM bitcode version.
I can't wait for my first "Sorry. This webpage does not support ARMv7 Hard-float".
Another reason Mozilla might not support this is that it's actually not called Na(tive) Cl(ient). It's full name is "Google Native Client".
That sure as hell doesn't sound like a standardized and fully spec'd thing I'd implement in my browser if my name was anything besides Google.