What impact will Web Assembly have?

"The most amazing achievement of the computer software industry is its continuing cancellation of the steady and staggering gains made by the computer hardware industry." - Henry Petroski

It's a quote spread around all the time by people fascinated by the idea that even hardware is unimaginably faster than it was back the day, the relative speed of software "feels" to be about the same. Many contribute this ability of software to things like JavaScript and other scripting languages saying there's too much overhead. I think it's also that we actually do do more but I digress.

What WebAssembly promises is to let us (the web) do even more with even less. While I think the barrier to entry is still a little high, WASM brings smaller code deliverables, faster code, and less overhead. I am excited to see what we'll make with it.

edit: something else that I forgot to mention, is that since WASM is a compiler target and not a language itself, it serves as a medium for any language to come to the web provided a compatible compiler is made. I think that is really cool.

smaller code deliverables

Can you give an example of something most interesting that could come out of this?

WASM provides the ability to compile existing libraries to WASM and push code previously thought too heavy for the browser. Big existing engines like Unity are being made "natively" available for web development, and with type="module" coming to Workers soon bigger and bigger apps will be feasible. On the other end, this provides a way to make smaller web apps even more performant and use less bandwith.

Not entirely true, for native libraries sure, but other than that it's not really smaller and very limited in what it can do

It's still very young and barely past its MVP. The MVP was to just get a basic workable implementation in the big browsers. For more info checkout their Roadmap and planned future features.

Compatible compilers will help us bring C++ to the web!! 😋

How will native gaming in the browser change the way high-fidelity games are conceived? The web vs native in every respect has an effect folks onboard onto a new thing. Thoughts?

For the game developer audience, WebAssembly represents an addition to an already long list of supported target platforms (Windows, Mac, Android, Xbox, Playstation, …), rather than being a new original platform to which projects are developed from scratch.
From WebAssembly for Native Games on the Web

less disruptive and more another platform.

WebAssembly also brings the possibility of finally not "needing" the other platforms. All those platforms would have to do is ship an OS with a good browser and every game made well and with Gamepad API support would be available on every one of those platforms.

* I know that wouldn't happen for economic reasons, but you could still make platform exclusives with private keys and DRM etc.

Early on I think your asterisk remark is needed, but in the long long run it could be a realistic possibility.

That's the hope! 🤞🤞
The OS I want to make is actually very close to this idea with some little differences only because with some apps the web doesn't make sense everywhere, but still made with web tech

Atwoods law states that everything that could possibly be written in JavaScript will ultimately be written in JavaScript.

Web Assembly is first of all a fallback for JavaScript in case something is not feasible in terms of performance or download size. At the same time, it's a compiler target for clang, which makes running other languages like C, C++, or Rust really easy.

The reason I'm excited about it is that it hopefully means it will become practical to use other languages than JavaScript as the scripting language for client side development. By "other languages" I of course mean Python because it is the best 😬

I think there will be great usages of this technology. The one I can think of, is when users are uploading some images to your service. Imagine doing the image opimisation on client, before sending it to the server. Saving cellular data and speeding up upload speed.

I already tried it out, it looks promising. Altought I found quite difficult, to find any proper documentation, how to actually cross-compile some code. The community is small, but that will probably change as more and more devs will use it. Since the worldwide support is about 77,5 % and even Safari already implemented it. And it's also usable for mobile devices, not like browser plugins!

  • Native graphical softwares in the browser.
  • Write once, run anywhere.
  • Eventually the browser can become the ultimate UI framework for desktop and mobile (see previous point).
Classic DEV Post from Dec 19 '17

What are your must-read tech books for 2018?

Hey there! Though New Year’s resolutions have never played an important role ...

Follow @bekka to see more of their posts in your feed.