<story><title>WASM Is the New CGI</title><url>https://roborooter.com/post/wasm-is-the-new-cgi/</url></story><parent_chain><item><author>junto</author><text>Can someone explain to me what the difference really is between WASM and older tech like Java Applets, ActiveX, Silverlight and Macromedia Flash, because they don’t really sound much different to me. Maybe I’m just old, but I thought we’d learnt our lesson on running untrusted third party compiled code in a web browser. In all of these cases it’s pitched as improving the customer experience but also conveniently pushes the computational cost from server to client.</text></item></parent_chain><comment><author>vbezhenar</author><text>Java and Flash failed to deliver its promise of unbreakable sandbox where one could run anything without risking compromising host. They tried, but their implementations were ridden with vulnerabilities and eventually browsers made them unusable. Other mentioned technologies didn&amp;#x27;t even promise that, I think.&lt;p&gt;JavaScript did deliver its promise of unbreakable sandbox and nowadays browser runs JavaScript, downloaded from any domain without asking user whether he trusts it or not.&lt;p&gt;WASM builds on JavaScript engine, delivering similar security guarantees.&lt;p&gt;So there&amp;#x27;s no fundamental difference between WASM and JVM bytecode. There&amp;#x27;s only practical difference: WASM proved to be secure and JVM did not.&lt;p&gt;So now Google Chrome is secure enough for billions of people to safely run evil WASM without compromising their phones, and you can copy this engine from Google Chrome to server and use this strong sandbox to run scripts from various users, which could share resources.&lt;p&gt;An alternative is to use virtualization. So you can either compile your code to WASM blob and run it in the big WASM server, or you can compile your code to amd64 binary, put it along stripped Linux kernel and run this thing in the VM. There&amp;#x27;s no clear winner here, I think, for now, there are pros and cons for every approach.</text></comment>
<story><title>WASM Is the New CGI</title><url>https://roborooter.com/post/wasm-is-the-new-cgi/</url></story><parent_chain><item><author>junto</author><text>Can someone explain to me what the difference really is between WASM and older tech like Java Applets, ActiveX, Silverlight and Macromedia Flash, because they don’t really sound much different to me. Maybe I’m just old, but I thought we’d learnt our lesson on running untrusted third party compiled code in a web browser. In all of these cases it’s pitched as improving the customer experience but also conveniently pushes the computational cost from server to client.</text></item></parent_chain><comment><author>pdpi</author><text>Unlike ActiveX, Silverlight, or Flash, it&amp;#x27;s an open standard developed by a whole bunch of industry players, and it has multiple different implementations (where Java sits on that spectrum is perhaps a bit fuzzier). That alone puts it heads and shoulders above any of the alternatives.&lt;p&gt;Unlike the JVM, WASM offers linear memory, and no GC by default, which makes it a much better compilation target for a broader range of languages (most common being C and C++ through Emscripten, and Rust).&lt;p&gt;&amp;gt; Maybe I’m just old, but I thought we’d learnt our lesson on running untrusted third party compiled code in a web browser.&lt;p&gt;WASM is bytecode, and I think most implementations share a lot of their runtime with the host JavaScript engine.&lt;p&gt;&amp;gt; In all of these cases it’s pitched as improving the customer experience but also conveniently pushes the computational cost from server to client.&lt;p&gt;The whole industry has swung from fat clients to thin clients and back since time immemorial. The pendulum will keep swinging after this too.</text></comment>