DEV Community

Discussion on: Is it just me or are we in a low-hype phase?

 
rhymes profile image
rhymes

@kenbellows , I'll try to answer :)

But regarding the proprietary code problem, haven't we tried this before with the JVM? It did pretty well for a while, but hasn't really solved the cross-platform problem.

WebAssembly's binary format is an open standard and can be reverse engineered. There's a text version of the binary and I'm sure "view source" tools will pop up when mainstream. You can already go from text to binary with command line tools. Is it super readable? No. But it's not proprietary. This is the first difference.

Another difference is that it's designed from the start to be cross platform, and already is: it's cross browser and cross platform.

Yet another difference is that all the major companies are backing it: Mozilla, Microsoft, Google, Apple are all in it and the major browsers support the 1.0 specification (backed by the W3C). An example implementation that's already in production is the one by Figma which used to speed up their design tool:

As you can see, our load time improved by more than 3x after we switched to WebAssembly regardless of document size. This is a huge improvement for our users, who often create very large design documents and frequently switch between them.

An additional load time benefit of WebAssembly that isn’t captured in this graph is that load time no longer depends on application size. As long as users have loaded the app before, the browser should already have the translation from WebAssembly to native code cached from last time.

WebAssembly doesn't need to be recompiled everytime so that's a plus :)

This is really a great intro if you want to understand it better: WebAssembly. Neither Web Nor Assembly, All Revolutionary

Was that a reference to security issues, or performance, or just the "compile everything to JVM bytecode instead of writing JS" trend of the 2000s, or something else?

No I just think they are two different things even if at the surface they can seem similar. WebAssembly can potentially be used as an applet. Drop a binary in a page and play a 3D game completely disconnected from the web around it. But it goes beyond that.