3 ms·
WASM is an abbreviation for WebAssembly. If it doesn't have DOM access, WebAssembly is as related to the Web as JavaScript is to Java. A language ecosystem with
by cjs_ac 1y ago
WASM is an abbreviation for WebAssembly. If it doesn't have DOM access, WebAssembly is as related to the Web as JavaScript is to Java. A language ecosystem with no I/O capability is as much use as a one-legged man at an arse-kicking party.
- flohofwoe 1y agoWell, arguably the worst thing about WASM is the naming. It's neither directly related to the web, nor is it an assembly syntax. It's just another virtual ISA. "Direct DOM access for WASM" makes about as much sense as "direct C++ stdlib access for the x86 instruction set" - none ;)
- cjs_ac 1y agoIf you want to compare the situation to x86, direct DOM access for WebAssembly is more akin to the BIOS than C++ stdlib access. If it can't interact with the outside world, it's just a very special toy that you can only use to play a game that isn't any fun, and a good candidate for those 'What's the next COBOL?' discussions that come up every now and then.
- marcosdumay 1y agoIt's basically that joke about Haskell, that nobody uses it because it can't have any effect... but for WASM the developers are insisting on making sure it's real.
- titzer 1y agoIn German, often things are named for where they came from, like Berliner or Frankfurter. WebAssembly came from the web, so makes sense :)
- k9294 1y agoOh wow, that really is terrible naming... I always thought WASM was a specification for compiling code into something that runs natively in web browsers—like a web-specific compilation target.. Today I learned.
- munificent 1y agoIt's an instruction set architecture that browsers happen to support executing directly.
- nostrademons 1y agoLike C, which offloads IO to the standard library?
- cjs_ac 1y agoIt's still there - you can still do I/O in C, even if you have to call a library function. In WebAssembly, there's no mechanism for I/O of any sort.
- flohofwoe 1y ago...in WASM you also call a function to do IO though? That function is just provided by the host environment via the function import table, but conceptually it's the exact same thing as a Linux syscall, a BIOS int-call or calling into a Windows system DLL.
- marcosdumay 1y agoAs long as that function doesn't receive any parameter that is like any data actually on the DOM. So you either create a very concrete JS library that translates specific WASM data into IO actions, or one that serializes and deserialize everything all around but can be standardized. At this point, none of those options are much more capable than Java applets... Or, in fact, if you put a network call between the WASM and the JS, you won't even add much complexity.
- flohofwoe 1y ago> At this point, none of those options are much more capable than Java applets Java applets allowed to load and call into native DLLs via JNI, so they were definitely much more capable than WASM, but also irresponsibly unsafe. In your own WASM host implementation you could even implement a dlopen() and dlsym() to load and call into native DLLs, but any WASM host which cares about safety wouldn't allow that (especially web browsers).
- nostrademons 1y ago
- deleted 1y ago[deleted]
- afiori 1y agoWebgl can't access the dom either
- hollowturtle 1y agoThat's opengl on the web, a graphic api, you can't compare the two
- afiori 1y agoI agree, but my point is that a language can be useful even if it does not have access to everything
- danhau 1y agoWASM is to webbrowsers what WebGPU is to webbrowsers. Designed with browsers in mind, but not bound to them.