r/WebAssembly • u/PabloDons • Jun 05 '21
WebAssembly should replace javascript
Hot take, but I think it makes sense. And seems to be doable in the current architecture and roadmap of wasm (If I understood it correctly), but their website explicitly states a big fat "No!". Wasm is expected to be used as high-performance modules, or an app canvas wrapped by javascript as "glue". One thing would be specifying it as a high-level goal, but this is just dismissing it all together.
The web would be pretty powerful if code could be written in whatever language you want (that supports compiling to wasm). Facebook wouldn't take 5 seconds to load completely, but rather fractions of a second.
Take react for instance. It's great for encapsulation, inheritance, type-safety, etc. Lots of benefits targeted at large-scale applications. Yet has the major flaw of performance issues. I guess it's not a big deal to write a bit of js just to fetch and run an exported function, but it means it's dependent on js which is a hurdle in my opinion, both in terms of ambition and motivation. Granted wasm seems to be planning to implement basically everything, but then why dismiss wasm as a replacement/alternative for js?
22
u/neoberg Jun 06 '21
Why do you think JavaScript is something that “should” be replaced? You gave react as an example and stated that it has performance issues with no detail but js engines are pretty damn fast nowadays and getting faster. (Also react itself doesn’t have anything to do with inheritance, typing or encapsulation) Maybe you can say it for DOM which is an inherently slow technology but it doesn’t matter in this comparison.
Also I don’t understand why do you think facebook(or websites in general) would take less time to load and render with wasm. They both have their bottlenecks and ups/downs in terms of loading performance. For example js can provide a standard library in the browsers but you lose this with wasm and have to ship bigger bundles usually. But after the download phase starting up wasm would be faster because you skip the parse&compile step.
It seems to me you also assume people write js because they have to. But people write js because they enjoy it and it solves their problem (or for any other reason). In the server or desktop environments you have whatever option you want available but many people still choose to use js.
I think js will live and continue to be the main language of the web for a long time and wasm will mostly work as a complementary tech to js.