I enjoyed this article on Missing the Point of WebAssembly. Count me as one of the people previously "missing the point" by this definition. I now feel less inclined to explore wasm in my web dev work, and more inclined to explore it in my VPL work.
k
Konrad Hinsen
01/10/2024, 7:34 AM
The article reminded me of the nice concept of narrow waists, which is exactly what WebAssembly is according to the author. My impression is that this is more a promise than a reality at the moment, but... wait and see.
a
alltom
01/10/2024, 1:27 PM
That’s been my dream! It’s just too large to learn from scratch, and when I found a half dozen embeddable VMs, I couldn’t get any of them to work. 🤦🏽♂️
m
Miles Sabin
01/10/2024, 3:53 PM
I think the author is over emphasizing web assembly's novelty though ... if you take the para starting "But WebAssembly is a new point in this space ..." and substituted LLVM/JVM/CLR/... you'd end up with an equally reasonable result.
k
Konrad Hinsen
01/11/2024, 8:29 AM
I do see WebAssembly as a modern version of the idea behind JVM and CLR (less so LLVM, which was always marketed as a toolkit for compiler backends). What's new then in WebAssembly is (1) lower-level code, less oriented towards a specific programming paradigm (OO for JVM)) and (2) better adaptation to different environments (browser etc.) and security (sandboxing).
s
shalabh
01/12/2024, 12:25 AM
I enjoyed this article as well. Interestingly Newspeak uses wasm as the implementation platform. The narrow waist concept is apt I feel. It still seems not fundamentally new, being ABI-like IIUC and essentially still a single node local environment. Still, it seems to raise the bar for the ABI-like abstractions.
t
Timothy Johnson
01/13/2024, 3:17 AM
Can someone clarify the idea that boundaries facilitate composition? That seems to be very important to the argument, but I'm not quite grasping how.
i
Ivan Reese
01/13/2024, 5:32 AM
A 1¢ example would be, like, any API (or any interface). It defines the ways in which you may compose the code you're writing with the code on the other side of the interface.