I am Jay Phelps. Ask me anything.


How would you explain the current state of 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!

Reply to this…

(35 questions) Take me to the AMA