Earlier quoted context omitted.
> there really isn't any need for the browser to run applications anymore, is there? Of course there is. You can open a new "application" without installing, just by clicking a link or entering a URL. The beauty of browser as a platform is simplicity of navigation between apps you haven't previously installed. Also, note that the distinction between a document and an application is vague. Is interactive document, per…
Why would you have to install a wasm/wasi binary? You can pull things over a network without a web browser you know.
Standardizing WASI: A system interface to run WebAssembly outside the web
71–80 of 238 posts
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#72Earlier quoted context omitted.
> why is WebAssembly outside of the browser needed? It's arguably a better standard runtime than Java, for certain use cases. You don't see modern compilers targeting the JVM as an output target, but you do see them targeting WASM, there's probably good reason(s) for that (both technical and political/legal). Furthermore, my understanding of WASI is that it allows standardization of _multiple_ runtimes, each domain s…
OK you answered a few of my questions and I still don't see why WASM is a requirement for any of this to happen. No matter what language I use, no matter what platform I deploy to, if I want to interact with a service or with infrastructure, I'm going to have to use the provided API(s), WASM included. If I deploy a pre-compiled binary to an AWS Lambda and an Azure Function, and it works on both, it's because I had to…
It's _not_ a requirement, but at least to me it seems like a pretty good _possible_ solution.
I sense you're pretty jaded about web development, and I get that, but I don't agree this is "web people" trying to do things outside the browser, but rather I see it more as "systems people" trying to bring _some_ order to the chaos.
> nearly all developers are terrible at thinking about preventing security vulnerabilities
I totally agree. Which is why you should have a solid abstraction between the sandboxed code and what it's allowed to do, which WASM seems particularly good at (by only exposing services as syscalls). In theory, sandbox escapes in WASM should be the same level of difficulty as modern kernel exploits, so still _possible_ but _pretty hard_. And if multiple runtimes are using WASM for different things, if one is exploited it can be a learning lesson for all the other WASM runtimes, vs. the bespoke scenario where each custom VM has to go through the security bug discovery process by itself.
If _think_ what you're against is some sort of future where a "WASM-based-Electron" becomes the de facto standard for modern apps, and _that_ I largely agree with. In fact, re-reading the WASI standard I do feel like they are already "baking in" too much w/ WASI-core; I was expecting the core to just focus on a simple syscall ABI, not to include syscalls like filesystem reads and writes.
Some maybe what I'm really looking for is a "wasi-minium-abi" that just standardizes _how_ syscalls are made without actually standardizing any actual syscall numbers.
In summary, I feel like syscalls are a _very_ tried and true way to specify the API/ABI for a runtime, and that I hope we see more runtimes use WASM and a syscall ABI vs. rolling their own VM, but I agree that I'm in no rush to see WASM/WASI become the "Electron 2.0" of local app deployment.
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#73Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#74Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#75This is nice and I'm excited about it, however there is a concern that people are going to start building code that targets WASI and then shim it to run in the browser. This happened to JavaScript when Node.js was released; people began using APIs intended for servers and then shimmed them to also run in the browser resulting in code bloat. I'm worried that the same is going to happen here; the video actually encoura…
I think the browser shouldn't be a platform at all, frankly, and WASI is one possible way we can finally stop trying to shoehorn it into being one. If everything runs a WASI runtime, which is designed to run applications from the ground up, there really isn't any need for the browser to run applications anymore, is there?
A benefit of applications in the browser is that they share and benefit from the same security policy decisions which are made for web pages. I think the closest thing to what you're suggesting is mobile apps, which don't always compare favourably. Users are often coerced into giving up unnecessary permissions, and they have less control over the user experience (can't block ads or change styles).
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#76Earlier quoted context omitted.
Yep, just like....wait for it....UCSD Pascal.
Nobody is saying that the idea of a sandboxed VM is original. The interesting parts of wasm are the theoretically-uninteresting but important-in-practice features: JS interoperability, the LLVM backend, cross-browser support, etc.
Actually JVM got there first with JS-interoperabily.
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#77Earlier quoted context omitted.
The idea of isolation that java espoused is not a bad one - it just wasnt executed well. Its not a java only idea either - see Native Client[0]. As with all things, execution and marketing matter. Java was lacking in both. [0] - https://static.googleusercontent.com/media/research.google.c...
OK, that's all correct and valid. Java still exists and is a valid deployment platform. Why is WebAssembly outside of the browser needed?
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#780: https://www.destroyallsoftware.com/talks/the-birth-and-death...
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#79Earlier quoted context omitted.
Yes!
What about platform differences like how file permissions work on windows vs posix? (i.e., stuff that Python does not fully normalize)
I have worked on file APIs. There are so many differences between Windows and Posix that abstracting them away just doesn't work. Undoubtedly, there will eventually be platform-specific APIs that implement one or the other, and cross-platform APIs that implement the intersection.
Re: Standardizing WASI: A system interface to run WebAssembly outside the web
#80Can't help being reminded of that talk by Gary Bernhardt: “The Birth & Death of JavaScript”[0] — exploring a hypothetical future where JS takes over everything without (most) anyone using it of their own volition. 0: https://www.destroyallsoftware.com/talks/the-birth-and-death...