Well, for one thing, NaCl was a stunning failure because it required platform-specific compiles. For another thing, it only worked on the Chrome Web Store, and nobody gives a shit about the Chrome Web Store. It also didn't work on Android...
But yeah, I'm sure it's just because all code-in-the-browser technologies are doomed and asm.js is too, not because Google's execution was completely incompetent.
> For another thing, it only worked on the Chrome Web Store
Actually, it works outside of the Web Store, but turning it on outside of the CWS is behind a defaults-to-off flag in the Chrome's settings, because Google didn't want NaCl code getting deployed widely on the web, because they didn't want code that would be locked to one architecture being widely deployed when they knew the plan was for PNaCl to be the long-term replacement.
I'm not going to criticize their thought process behind locking NaCl to CWS; from a standards and 'open web' perspective, that was a sound choice. That doesn't change the fact that it largely contributed to its failure in the market. The game devs I talk to on a regular basis wanted to use NaCl, but couldn't, because it was tied to the CWS.
> That doesn't change the fact that it largely contributed to its failure in the market.
Yes, the fact that Google choose to limit it specifically to prevent it from being widespread in the market contributed to its limited use in the market. But then, since its purpose wasn't to be widely used in the market (hence the restrictions imposed) but to validate technology and components for PNaCl, that's not really that surprising.
I'm pretty sure PNaCl was created to solve the disconnect between ARM based Chromebooks and Atom based Chromebooks. If it also works for Chrome on Android, I think that is a happy side effect, especially since PNaCl was introduced (through flags) in Chrome shortly after the Samsung ARM Chromebook was released. If you want to create packaged Chrome applications for the Chrome Store, you want them to work regardless of the machine architecture.
> I'm pretty sure PNaCl was created to solve the disconnect between ARM based Chromebooks and Atom based Chromebooks.
I think PNaCl was announced (as a long-range project) before ChromeOS was, and I'm certain it was announced before there were any actual Chromebooks, muhc less a concrete disconnect between ARM-based and x86-based Chromebooks.
It was created to solve the problem of high-performance software being tied to a particular native platform, which was clearly an issue for Google's long-term vision of web-as-dominant-platform long before there were concrete issues of different platforms for Chromebooks.
But yeah, I'm sure it's just because all code-in-the-browser technologies are doomed and asm.js is too, not because Google's execution was completely incompetent.