I am Jay Phelps. Ask me anything.

View other answers to this thread

Learn Something New Everyday,
Connect With The Best Developers!

Sign Up Now!

& 500k+ others use Hashnode actively.

Alexis's photo

How would you explain the current state of Webassembly?

Jay Phelps's photo

JavaScript and stuff at Netflix. RxJS junkie. redux-observable, core-decorators. Compiler enthusiast. Obsessed with WebAssembly.

Love this question!! (I'm obsessed with WebAssembly) It's pretty bleeding edge stuff, but it's progressing much faster than most probably think!

Right now WebAssembly (aka wasm) v1 is supported in all modern browsers (Firefox, Safari, Chrome, Edge), which is great, but a lot of people need to support older versions which don't. If you're writing in C++ you could dual compile to wasm as well as asm.js; which is a subset of JavaScript so it works in older browsers. There's also some experimental "polyfills" created by the community. Some of them are interpreters some are basically wasm -> JS VMs. These are currently pretty slow though, and it's likely they'll always be impractical for performance reasons.

The v1 of wasm was designed around the C/C++ use case, so it's pretty low-level stuff. However, there's a very active and quickly moving proposal for exposing a built-in Garbage Collector, which is going to be one of the most important building blocks to have high-level languages target wasm and interop with JS objects and the DOM APIs. This is very exciting. Languages like Reason and Elm will be prime examples.

Webpack is actively working on first-class support for wasm modules, as well as eventual things like a cpp-loader, reason-loader, etc which will transparently abstract away nearly all wasm stuff so we can just focus on writing code in our preferred language.

Such an exciting future!

Want to read more?

Browse featured discussions

© 2020 · Hashnode