> in a world where PNaCl is the "correct way" to run C/C++ code
PNaCl will never be the correct way to run C/C++, because it will never be standardized. The implementation itself defines what it is, it will never have a spec, as it depends on LLVM. Writing a spec for the standardization of PNaCl means you have to also write a spec for LLVM. It will never happen and the only browser that will support it will be Chrome. And unless Chrome wins a monopoly on web browsers, PNaCl will never be part of the web.
It also baffles me that people don't remember what happened with IExplorer and ActiveX. Are people here so young as to haven't lived the early 2000?
What makes PNaCl different from ActiveX anyway? Is it because of the Google branding? Microsoft was once considered to be cool you know. And IExplorer 5 was a kickass browser for its time. Is it because PNaCl has source-code? That doesn't warm me much. Mozilla and other browser vendors could have reversed engineered ActiveX. So what makes them so different that this time it's OK?
> 50% C speed is not enough
We managed to live just fine without C/C++ on the web. We could continue living without it for a very long time. What do you think is better, running C code at 50% speed, or not being able to run C code at all? And people have been using and running with languages that run at 2% of C. Achieving 50% of C, assuming it is true, is sensational considering the benefits (like extreme portability).
Maybe it won't be standardized. And maybe websites will start instructing users to use Chrome, or simply publish to the Chrome Web Store. If asm.js takes off, I think it will work, but right now it's one browser maker competing against a kit which provides 90% speed, today, with multithreading and a real debugger, and which, despite its flaws, seems cleaner and saner to many developers (I'm sure you've seen the many kneejerk reactions to JavaScript-as-bytecode), never mind other browser makers which seem fine with none-of-the-above (remember, today, if you even want to use WebGL, you're asking a significant portion of users to switch browser). So despite the hype, I'm not sure asm.js will receive enough support in the next few years to succeed.
The difference between asm.js and PNaCL is that asm.js doesn't need to receive support for it to succeed - asm.js code will get faster and faster, even if browser vendors do not make any effort to support it, virtue of it being a subset of Javascript.
> today, if you even want to use WebGL, you're asking a significant portion of users to switch browser
That's not really true. WebGL is supported in Firefox, Chrome, Opera and Safari. For IExplorer there's a browser plugin available that can add the necessary support.
Of course, having to install a browser plugin for IExplorer is not ideal. Microsoft decided to wait before implementing it for IExplorer versions 9 and 10 due to valid security concerns [1]. Even so, IExplorer 11 may include such support if the Windows 8.1 preview is to be believed.
> I'm sure you've seen the many kneejerk reactions to JavaScript-as-bytecode
I haven't read a single knee-jerk reaction that was informed and justified. The only anti-reaction I've read so far has been from Vyacheslav Egorov, a Google engineer, that's arguing that asm.js is not needed because we haven't reached the limit of where we can take Javascript in terms of performance and that in his opinion it can fragment the web if browser vendors concentrate on optimizing just the asm.js subset, instead of Javascript as a whole.
However, the same arguments can be said about PNaCl. Even inside Google people have mixed opinions about Javascript versus PNaCl and Dart.
> a kit which provides 90% speed, today, with multithreading and a real debugger, and which, despite its flaws, seems cleaner and saner to many developers
I hope you're thinking of something else other than GDB, because if that's the sane debugger you're talking about, then I'll take Firebug any day of the week, thanks ;-)
Javascript does have multithreading by means of web workers, available even in IExplorer since version 10.
Also, lets assume for the sake of the conversation that in general developers really do consider PNaCl to be saner, even though I doubt it. Well, guess what - the resulting apps are not web apps. So why target Chrome with PNaCl, when develpers could be building native apps instead with real native experience? The reasons one wouldn't want to go native have to do with the inherent advantages of the open web. And PNaCl has none of them.
PNaCl will never be the correct way to run C/C++, because it will never be standardized. The implementation itself defines what it is, it will never have a spec, as it depends on LLVM. Writing a spec for the standardization of PNaCl means you have to also write a spec for LLVM. It will never happen and the only browser that will support it will be Chrome. And unless Chrome wins a monopoly on web browsers, PNaCl will never be part of the web.
It also baffles me that people don't remember what happened with IExplorer and ActiveX. Are people here so young as to haven't lived the early 2000?
What makes PNaCl different from ActiveX anyway? Is it because of the Google branding? Microsoft was once considered to be cool you know. And IExplorer 5 was a kickass browser for its time. Is it because PNaCl has source-code? That doesn't warm me much. Mozilla and other browser vendors could have reversed engineered ActiveX. So what makes them so different that this time it's OK?
> 50% C speed is not enough
We managed to live just fine without C/C++ on the web. We could continue living without it for a very long time. What do you think is better, running C code at 50% speed, or not being able to run C code at all? And people have been using and running with languages that run at 2% of C. Achieving 50% of C, assuming it is true, is sensational considering the benefits (like extreme portability).