4 ms·
I’m a Django developer at hart and have been for 15 years. The dream I have that I hope WASM will provide is to package any app (Python, Ruby, Rust, Go, anythin
by samwillis 5y ago
I’m a Django developer at hart and have been for 15 years. The dream I have that I hope WASM will provide is to package any app (Python, Ruby, Rust, Go, anything!) up into a single binary file that we can deploy anywhere, on any architecture (x86, arm). No more packaging nightmare, no more containers, just a single file that runs anywhere. Maybe it’s wishful thinking but I hope it happens.
- rich_sasha 5y agoIsn’t this basically JVM? Jython is a thing.
- samwillis 5y agoThe parallels between WASM and the JVM are well known. But I like to think of it as WASM is building upon the knowledge gained from the JVM. With the JVM you had to reimplement your language to target it, or design a new one. WASM was planned from the start to be a target for existing compiler frameworks such as LLVM and GCC. With Jython you could not use extensions that were designed for CPython. With WASM you can. Take a look at Pyodide, they have ported most of the scientific Python stack to WASM, that’s not possible with Jython. https://github.com/pyodide/pyodide https://github.com/pyodide/pyodide
- pjmlp 5y agoJust like IBM TIMI, TenDra, Amsterdam Compiler Toolkit, CLI. That is the thing with WebAssembly marketing, not being aware of bytecode formats history.
- immibis 5y agoAnd yet WASM still has warts that make it impossible to simply transpile existing binary code onto it. Java, by the way, also isn't stopping you from storing all your data in one big ByteBuffer, which is how WASM handles memory.
- pjc50 5y agoSort of - and the JVM has been a thing on webservers since WebSphere and Tomcat. But never quite achieved the ease of use. I'm not aware of a service you can just chuck a jar at and your webservice spins up on your (sub) domain? Jython has been a casualty of the 2 => 3 transition.
- 1337shadow 5y agoIt's PyInstaller: https://pyinstaller.readthedocs.io/en/stable/ https://pyinstaller.readthedocs.io/en/stable/ Or containers.
- manmal 5y agoContainers are not architecture-agnostic. In theory they are not even kernel version agnostic, though Docker seems to work around that.
- dilyevsky 5y ago“Containers” are basically Linux only and that means they can freeride off Linux’s really stable userland api
- joconde 5y agoPyInstaller is hackish though, I had to add tricks to setup.py by trial-and-error until I found why some config file or sub-module of a sub-package wasn't included when everything else was. It's also slow to launch, because it extracts the code into a temporary directory before importing python.dll, which then imports all the rest. Containers are fine for a server after installing the runtime, which is already one too many steps. There isn't a self-contained app format that can run without installing something else before starting it.