<story><title>Chrome and Opera Optimize for Mozilla-Pioneered Asm.js</title><url>https://blog.mozilla.org/futurereleases/2013/11/26/chrome-and-opera-optimize-for-mozilla-pioneered-asm-js/</url><text></text></story><parent_chain><item><author>pvnick</author><text>Asm.js is intrinsically superior to native client (and yes, I do see them as competing technologies) and will inevitably push NaCl out of the market for one simple reason: even if the browser doesn&amp;#x27;t explicitly optimize for asm.js, &lt;i&gt;the code will still run&lt;/i&gt;. It may not be usably fast, but something will happen. As opposed to native client, where if your user base doesn&amp;#x27;t support it you&amp;#x27;re just dead in the water. And the trend so far is javascript getting faster and closer to native running code. Google &lt;i&gt;must&lt;/i&gt; eventually build asm.js optimizations into Chrome. What&amp;#x27;s their alternative strategy? Ignore asm.js and let Mozilla tout Firefox&amp;#x27;s javascript engine as faster? NaCl&amp;#x27;s writing is on the wall and Google knows it.</text></item></parent_chain><comment><author>ajross</author><text>I&amp;#x27;m not sure &amp;quot;intrinsically superior&amp;quot; is the right way to think about this.  If you were asked for a mechanism to get web clients to execute stuff &amp;quot;fast&amp;quot; that was generated from a traditional C-like compiler front end, you &lt;i&gt;surely&lt;/i&gt; wouldn&amp;#x27;t have designed asm.js.  You&amp;#x27;d probably have ended up with something more like the JVM or PNaCL.&lt;p&gt;It&amp;#x27;s true that asm.js wins for compatibility, for obvious reasons.  And that&amp;#x27;s a powerful advantage.  And it works in the same runtime that existing web apps do, which likewise a win; Java and especially NaCl have complicated interoperability paradigms.  They are not just &amp;quot;a faster web page&amp;quot;, which is what 90% of developers really wanted to begin with.&lt;p&gt;That said, the remaining 10% really do want something more.  They want to write targetted architecture-specific assembly, perhaps.  They want access to syscall-level abstractions like threads and true sockets (buffer sizes, Nagle settings, timeouts, etc...).  And asm.js has nothing for these people.&lt;p&gt;And despite its simlicity, asm.js is still mostly just a toy.  It&amp;#x27;s got one working compiler backend that isn&amp;#x27;t packaged sanely anywhere.  I&amp;#x27;ve three times now decided to get serious and build emscripten from source, and three times given up -- it lags LLVM releases, it has glitchy behavior.  Compare to clang and especially gcc which build robustly and cleanly everywhere and come with elaborate test suites.  This isn&amp;#x27;t a toolchain I&amp;#x27;m about to start betting a company on, for sure.&lt;p&gt;Give it time.  I like asm.js too.  But it&amp;#x27;s never going to be The Answer to remotely deployable &amp;quot;native like&amp;quot; code any more than Java was.</text></comment>
<story><title>Chrome and Opera Optimize for Mozilla-Pioneered Asm.js</title><url>https://blog.mozilla.org/futurereleases/2013/11/26/chrome-and-opera-optimize-for-mozilla-pioneered-asm-js/</url><text></text></story><parent_chain><item><author>pvnick</author><text>Asm.js is intrinsically superior to native client (and yes, I do see them as competing technologies) and will inevitably push NaCl out of the market for one simple reason: even if the browser doesn&amp;#x27;t explicitly optimize for asm.js, &lt;i&gt;the code will still run&lt;/i&gt;. It may not be usably fast, but something will happen. As opposed to native client, where if your user base doesn&amp;#x27;t support it you&amp;#x27;re just dead in the water. And the trend so far is javascript getting faster and closer to native running code. Google &lt;i&gt;must&lt;/i&gt; eventually build asm.js optimizations into Chrome. What&amp;#x27;s their alternative strategy? Ignore asm.js and let Mozilla tout Firefox&amp;#x27;s javascript engine as faster? NaCl&amp;#x27;s writing is on the wall and Google knows it.</text></item></parent_chain><comment><author>pfraze</author><text>I think there&amp;#x27;s room for both to exist. The strategies are hugely different and will depend on the performance payoff, but asm.js has the simplicity to make it happen while PNaCl has the resources of Google, and since resources is what PNaCl needs (docs, dev environments, marketing) then I can see both coming to maturity.&lt;p&gt;I was threatened by PNaCl for a while, until I realized that it integrates with Javascript through messaging. I think it could be a really solid complement to the Web platform.</text></comment>