6 ms·
WebAssembly on desktop and servers is maturing pretty rapidly! There are several backend interpreters already in Rust and Go (life). The native, compiled option
by feniv 7y ago
WebAssembly on desktop and servers is maturing pretty rapidly! There are several backend interpreters already in Rust and Go (life). The native, compiled options are even faster, Fastly's Lucet compiler and runtime was one of the first to implement WASI (https://wasi.dev/ https://wasi.dev/): https://www.fastly.com/blog/announcing-lucet-fastly-native-webassembly-compiler-runtime https://www.fastly.com/blog/announcing-lucet-fastly-native-w...
The differentiator for InNative seems to be the ability to bypass the sandbox altogether as well as additional native interop with the OS. Looks promising!
- forty 7y agoI'm wondering what's the point of compiling server side stuff in wasm? Unless I forgot something, all main server languages are rather portable already, either because they are interpreted (python, node, jvm...) or can be compiled to many targets (rust, go...).
- aclatuts 7y agoIt is nice in development to have bcrypt, openssl, etc for other languages without a build step and build tools
- zaarn 7y agoYou're not confined by the instruction set below. It no longer matters if your language supports PowerPC, Power8, x86, x86_64, ARMv5 through v8 or even more exotics. Similar to the Java VM, which definitely showed the advantage of being more easily portable, it decouples the binary you deploy from the actual hardware. Rust and Go have support for many targets but not as many as other compilers (GCC), a coverage problem that can be fixed by using WASM as intermediate and porting a WASM Runtime to that architecture. Something like Innative would also enable desktop applications to be independent of the OS and architecture. The same binary would run on x86_64 Windows, PowerPC Mac and ARMv8 Linux. It's basically Java but you don't have to use Java to get all the good parts. (Disclaimer: I know the main dev of innative and do some WASM work myself)
- fanf2 7y agoIt’s yet another UNCOL (1958) or ANDF (1987) :-) https://en.wikipedia.org/wiki/UNCOL https://en.wikipedia.org/wiki/UNCOL https://en.wikipedia.org/wiki/Architecture_Neutral_Distribution_Format https://en.wikipedia.org/wiki/Architecture_Neutral_Distribut...
- zaarn 7y agoDoubtful considering how much work is being done around WASM.
- pjmlp 7y agoUsually being hyped by people that apparently don't know the history of bytecode formats since the early 60's.
- zaarn 7y agoI'm well aware of the history of bytecode formats, Java was pretty successful for a while, even managed to get in the Browser and only failed there due to a lack of a DOM Interaction story and similar integration problems. There is already plenty of companies that deployed WASM on their stack (like Ebay, they use Wasm for their barcode scanner), it's not going away any time soon.
- pjmlp 7y agoWhat lacking of DOM interaction story?! https://docs.oracle.com/javase/tutorial/deployment/applet/manipulatingDOMFromApplet.html https://docs.oracle.com/javase/tutorial/deployment/applet/ma...
- zaarn 7y agoThe CDAPI barely worked when it was released. It worked but poorly to the point that the Java Devs would have better not bothered at all. It's such a poor story for DOM Interaction that it effectively does not exist. Everyone prefered to use some UI library to render UI themselves.
- vijaybritto 7y agoYou don't have to recompile for different architectures. Just compile once to wasm and it will run in all platforms it supports at the same speed. Note: the author mentions this too. "WebAssembly’s 32-bit integer indexes break LLVM’s vectorization due to pointer aliasing. Once fixed-width SIMD instructions are added, native WebAssembly will close the gap entirely, because this vectorization analysis will have happened before the WebAssembly compilation step."
- pjmlp 7y agoUNCOL, ANDF, P-Code, M-Code, JVM, PNaCL, MSIL, TIMI, ...
- deleted 7y ago[deleted]