I think Microsoft really missed a good bet by not embracing NaCl years ago. They have a huge preexisting native codebase. Probably a plurality of their development teams are native code-focused. Their customers employ hundreds of thousands of native developers and probably billions of lines of native code. C/C++ is such an inescapable part of their ecosystem that after almost a decade of selling C#/.NET as the future, they're increasingly proselytizing for the benefits of native code and C++11 in particular.
They could have leveraged all of this by buying in to NaCl and putting it into IE. Hard to see how Google says no, and once Microsoft has that level of commitment to the technology, they'd get a strong say in its evolution. As a multi-vendor standard with an open source implementation, NaCl could have gotten real traction, and suddenly every C++ developer inside Microsoft and working for their customers has a path to the web for existing code that's slightly more plausible than rewriting everything in JavaScript and hoping the VMs get faster without also killing your laptop's battery (unlikely, I think).
I think Microsoft refusing to support NaCl is one of the best things they did. For once they pulled their head out of their ass and thought about the benefits of an open web.
I'm seeing a lot of comments here in support for NaCl, so apparently people have forgotten (or never lived) the days of ActiveX. I am not buying the conspiracy theory bits of this article, I also regret waisting time reading it ; however that doesn't mean NaCl isn't a bad idea.
As a multi-vendor standard with an
open source implementation ...
Dude, seriously, don't you think these "vendors" had good reasons to dismiss NaCl?
The whole point of NaCl is the sandbox that blocks access to Microsoft's Windows APIs. Adopting it wouldn't have benefited Microsoft at all. What Microsoft should have done is built the CLR into IE as a JavaScript alternative instead of bolting a crippled version on the side (in the form of Silverlight). They could have controlled the best Web development platform out there, but that opportunity is long gone.
Agreed.
And I still don't understand Mozilla's problem with NaCl. They argue that js is now nearly as fast as native. Well...even if that were true it ignores the fact that as you point out there is huge investment in legacy code that NaCl unlocks AND it ignores the fact that js makes it easy to copy what may be valuable IP.
Mozilla's problem with NaCl is that Mozilla believes in open access to the web for everyone, while NaCl at the moment is tied to particular hardware architectures. The two seem to be fundamentally incompatible.
If PNaCl ever happens, that might change the situation, maybe.
As far as legacy code, emscripten unlocks it as well. Not with the performance of NaCl (and unlikely to get there), but it has the benefit of running cross-browser right now and not forcing people onto particular hardware platforms.
And copying "valuable IP" out of an emscripten-compiled program is just as easy as copying it out of a binary, of course.
And for some things, "nearly as fast" isn't nearly fast enough, and in some cases (eg. media processing) you still need the very tight control over the CPU that C gives you.
They could have leveraged all of this by buying in to NaCl and putting it into IE. Hard to see how Google says no, and once Microsoft has that level of commitment to the technology, they'd get a strong say in its evolution. As a multi-vendor standard with an open source implementation, NaCl could have gotten real traction, and suddenly every C++ developer inside Microsoft and working for their customers has a path to the web for existing code that's slightly more plausible than rewriting everything in JavaScript and hoping the VMs get faster without also killing your laptop's battery (unlikely, I think).