All these people building JavaScript tooling in other languages would probably be so happy if there was no need for tooling in the first place.
All these people building JavaScript tooling in other languages would probably be so happy if there was no need for tooling in the first place.
IMO yes, for two reasons:
1. a lot of people like coding in JS! I know, anathema. But having coded in both JS and Rust I know which one is going to be more acceptable to the largest audience of developers. There's a reason Node got as popular as it has.
2. libraries. I'm sure there will be plenty of people doing DOM manipulation via WASM but if there are going to be a limited number of libraries you can pull off the shelf to do it. By comparison JS is always going to have a ton (arguably too many, but still). But I'm sure Microsoft won't be able to resist raising the ghost of WebForms to make something that actually does run .NET in the browser.
However I don't think it will be soon. I think the current biggest question is how garbage collection works with WASM. DOM nodes and many other resources are garbage collected. You need to define how WASM interfaces with that. (Does every object just get reference counted when passed to WASM and require an explicit free? Is there some sort of GC that traces over WASM memory?).
And I can't get a consistent answer on what problem WASM is trying to solve.
How would allowing DOM access be insecure? The DOM is designed to be completely controlled by the webpage. I don't see how adding an additional way for the webpage to do so adds any insecurity.
It adds more ways to sneak unwanted code into the page or do cross execution that shouldn't happen in first place, while staying inside the sandbox.
It also sort of solves a common problem of running untrusted code, both in browser or on server, because WASM VMs are much more isolated and restricted.
Same thing with WASM. JVM never achieved this level of penetration, and Flash allowed way too much access to ever be secured.
https://leaningtech.com/cheerpj/
https://leaningtech.com/cheerpj-applet-runner/
https://leaningtech.com/cheerpx-for-flash/
And in regards to "security",
https://training.linuxfoundation.org/blog/webassembly-securi...