DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

What impact will Web Assembly have?

Top comments (17)

Collapse
 
nektro profile image
Meghan (she/her) • Edited

"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.

Collapse
 
ben profile image
Ben Halpern

smaller code deliverables

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

Collapse
 
nektro profile image
Meghan (she/her)

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.

Thread Thread
 
hrmny profile image
Leah

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

Thread Thread
 
nektro profile image
Meghan (she/her)

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.

Collapse
 
jvarness profile image
Jake Varness

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

Collapse
 
moe64 profile image
Moe

native gaming on the browser!

Collapse
 
ben profile image
Ben Halpern

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?

Collapse
 
moe64 profile image
Moe • Edited

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.

Thread Thread
 
nektro profile image
Meghan (she/her)

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.

Thread Thread
 
ben profile image
Ben Halpern

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

Thread Thread
 
nektro profile image
Meghan (she/her) • Edited

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

Collapse
 
lexlohr profile image
Alex Lohr

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.

Collapse
 
triptych profile image
Andrew Wooldridge

Webassembly will be nothing less than a complete phase change in the world of the web. Webassembly will consume apps, and all the app like features that HTML, CSS, and JS have been trying to implement, and those technologies will move back to just being focused on documents, as they were designed. Webassembly will live on the client, but also the server, and has the potential to be a universal executable. Emulation, User Interface, Rust, C++, C#, you name it. This has the potential to be the "glue" that brings languages together, create self displaying images, self playing music, and fulfill the promise that Java apps once tried to do. What will really make webassembly shine is that there will be applications of it that no one right now has thought of. Things like servers running in the browser, 3d augmented reality shaders in a browser, and much more. The fact that the spec is open, not owned by any one organization, and is fast, simple, and safe, will make it looked back upon as one of the most transformative technologies of this decade.

Collapse
 
cathodion profile image
Dustin King

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 😬

Collapse
 
vojtaaa9 profile image
Vojtěch Pešek

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!

Collapse
 
djviolin profile image
István Lantos
  • 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).