4 ms·
This is historically the kind of thing that people think is very cool and important, but has turned out to not matter at all. "Languages matter" must be the big
by stefan_ 7y ago
This is historically the kind of thing that people think is very cool and important, but has turned out to not matter at all. "Languages matter" must be the biggest enduring fallacy of computer programming. It has an obvious corollary in believing processor architectures are important.
- weberc2 7y agoIt matters a whole lot. There's lots of code written in various languages and it's often prohibitive to use it in your own project because making the languages speak with each other (especially if you have performance concerns) is a lot of work. I don't expect WASM to make this trivial, but to say that it doesn't matter is patently wrong.
- gridlockd 7y agoI think the point is that your laundry list of features in your language of choice does not really matter when it comes to adoption. For instance, memory safety does not really matter so much that people would stop using unsafe languages.
- zzzcpan 7y agoWhy high level languages should be able to easily speak with each other? Wouldn't this defeat the purpose of having more than one language, since they would be effectively identical?
- AgentME 7y agoThe cross-language interoperability of WebAssembly seems practically like a happy side-effect of its design; I don't think it would look much differently at present if it had originally been built to target only C (in a sandboxable way). Most of the article still applies even if you ignore other language support. The first priority for WebAssembly seems to be making things strongly sandboxed.
- pjmlp 7y agoActually it fails to properly sandbox C derived languages versus what hardware memory tagging like SPARC ADI and ARM are capable of, because it doesn't do bounds checks inside linear memory blocks.
- AgentME 7y agoWebAssembly strongly sandboxes the module from affecting the world outside of it, not from affecting itself. Isn't that the usual use of the word sandbox? The sandbox imposes a boundary between the inside and outside, but it doesn't directly change how things work on the inside. It might be nice to have features for enforcing memory bounds within a module, but I wouldn't call those sandboxing, or call the lack of those features a deficit of the sandbox.
- pjmlp 7y agoIt is a security deficiency, hence why MSIL that contains certain C++ features is tainted as unsafe by the security verifier. Some other bytecodes like Unisys ClearPath mainframes follow the same approach when using unchecked bounds access. WebAssembly folks just hand wave it as not an issue.
- rini17 7y agoTo do anything useful across the boundaries, parsing will be involved. Parsing without bounds checking is insecure and will be exploited, period.
- saagarjha 7y agoHardware memory tagging is not a requirement for sandboxing. Actually, hardware memory tagging doesn’t even fully restrict out-of-bounds accesses because it’s granularity is usually larger than a byte.
- pjmlp 7y agoNo one is saying it is a requirement, rather that WebAssembly design oversells security by not doing those checks. Even if they would be at word level, it is already an improvement over the actual design.