Hacker News new | past | comments | ask | show | jobs | submit login

Why is it that implementing something in wasm is stalled for so long but doing it as a js feature is so fast? Anyone have insights? As an outsider it feels like wasm is being developed in an impossibly slow way.



Implementing something new in JS can be done relatively easily using a slow path, where you just write some privileged JS or C++ and then wrap it, without doing any optimizations. Then if it gets popular the vendors can optimize it at their own pace.

Implementing a new feature in WebAssembly is a bit more complex due to its execution model and security constraints. I expect it's also just the case that a lot of these new WASM features are very complex - promise integration is super nontrivial to get right, so are WebAssembly GC and SIMD.


OK, I'd believe that I guess.


JS Promises in something like their modern form were first played around with in ~2010, and it was ~2016 before browsers were shipping them natively. Good standards can take a while!


Because it basically covers what PNaCL, Java plugin, Flash plugin, Silverlight asm.js were doing.

Anything beyond those use cases it is really meh, specially given how clunky compiling and debugin WASM code tends to be.

Then we have all those startups trying to reivent bytecode executable formats in the server, as if it wasn't something that has been done every couple of years since late 1950's.


> Because it basically covers what PNaCL, Java plugin, Flash plugin, Silverlight asm.js were doing.

Right but it doesn't right now? Like you can't just write arbitrary code as you would with a Java plugin, or a PNaCL C++ plugin. Wasm is extremely difficult to use for those use cases.

> Then we have all those startups trying to reivent bytecode executable formats in the server, as if it wasn't something that has been done every couple of years since late 1950's.

Yes, because people really want this and the solutions have all been fraught with security issues historically.


What makes you think WASM isn't without flaws, just because their advocates say so?

"Everything Old is New Again: Binary Security of WebAssembly"

https://www.usenix.org/conference/usenixsecurity20/presentat...

"Swivel: Hardening WebAssembly against Spectre"

https://www.usenix.org/conference/usenixsecurity21/presentat...


I didn't say WASM is without flaws, I said the predecessors had flaws but that the premise is valuable, which is why we keep trying it over and over again.

Notably, the first paper is about exploitation of webassembly processes. That's valuable but the flaws of previous systems wasn't that the programs in those systems were exploitable but that the virtual machines were. Some of this was due to the fact that the underlying virtual machines, like the JVM, were de-facto unconstrained and the web use case attempted to add constraitns on after the fact; obviously webassembly has been designed differently.

I hope wasm sees more mitigations, but I also expect that wasm is going to be a target primarily for memory safe languages where these problems are already significantly less significant. And to reiterate, the issue was not the exploitation of programs but exploitation of the virtual machines isolation mechanisms.


I don't know for sure, but gut says the primary factor must be the ratio of devs working on JS runtimes vs WASM (over 10,000:1?)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: