4 ms·
Personally I'm more excited for WebAssembly on the server side. The possibilities for low-overhead multi-tenant workload sandboxing are fun to think about (Clou
by TechBro8615 6y ago
Personally I'm more excited for WebAssembly on the server side. The possibilities for low-overhead multi-tenant workload sandboxing are fun to think about (CloudFlare is doing more than just think about them!).
- BiteCode_dev 6y agoYes, being able to compile my VueJS component from inside my Python VM would be a huge plus: I would finally have one single template language on the frontend and the backend, and just one endpoint for rendered pages and API.
- pjmlp 6y agoIt doesn't offer anything better than hundred other bytecode formats, some of them in use for decades, since IBM and Unisys mainframes have gotten into production.
- throwaway894345 6y agoWhat are your options if you want to support C, Go, Rust, Python (actual Python, not "Jython" or others with low ecosystem compatibility), and JavaScript? Of those bytecode formats that support those languages, which have something like Krustlet, which would allow us to leverage Kubernetes and its ecosystem?
- pjmlp 6y agoGiven your list of languages, neither does WebAssembly.
- TechBro8615 6y agoWhich ones specifically? From his list it looks like Python and JavaScript would be troublesome, but it's theoretically possible. What I've read suggests that sandboxing Python is a real PITA, but there is some promise by linking it with Rust first and then compiling that to WASM (I think Pyodide can maybe do this? There was a wasmer fork of it but it's unmaintained atm.)
- pjmlp 6y agoExcept JVM and CLI already support them today, but apparently not good enough for the OP, and given that the support in WebAssembly is even worse than those options then WebAssembly doesn't fulfill his list. Add to that that Go is only partially supported on WebAssembly.
- throwaway894345 6y agoOP here. It's hard to make the case internally to switch to an orchestration platform that works for "most of our apps". Of course, it's similarly hard to make the case for WASM, which is similarly incomplete today; however, there appears to be mutual interest from language communities and the WASM team to get support working. Even still, I don't intend to make the case until WASM has a decent track record of supporting those languages. But I have more optimism that WASM will get there than JVM or CLI. Note also that while "JVM and CLI have support for those languages", their support for Python (and probably JavaScript) is only nominal. You can't reasonably use Jython or IronPython with the rest of the Python ecosystem, but WASM at least has a plausible path forward. I also strongly suspect that support for sandbox execution of the other languages is similarly nominal--if it's technically possible, I'd be surprised if anyone is doing this in practice.
- pjmlp 6y agoI advise you to watch these talks, "Why the #wasmsummit Website isn't written in Wasm" https://www.youtube.com/watch?v=J5Rs9oG3FdI https://www.youtube.com/watch?v=J5Rs9oG3FdI "Production Ready Server-Side WebAssembly: The Challenging Parts" https://youtu.be/-4zNzxqUBsk?t=3155 https://youtu.be/-4zNzxqUBsk?t=3155
- deleted 6y ago[deleted]
- throwaway894345 6y agoWhich bytecode platform do you expect will have mature support for these languages first?
- pjmlp 6y agoJVM (specially on GraalVM) and CLI support most of them. It remains to be seen when WebAssembly will have native support for GC languages. Then in case we are talking about languages like C and C++, IBM i and z/OS have had support for them on their language environments since they exist.
- TechBro8615 6y agoGraal is interesting. Is anyone using it in production for multi-tenant code execution? What is the sandboxing like? Can you combine it with something like Firecracker? Someone posted a demo to HN the other day of compiling Lucene into a Graal image (that the right terminology?) and making grep on steroids. The sub 100ms startup time was impressive.
- pjmlp 6y agoThis little company called Twitter. "Performance tuning Twitter services with GraalVM and Machine Learning" https://jeeconf.com/program/performance-tuning-twitter-services-with-graalvm-and-machine-learning/ https://jeeconf.com/program/performance-tuning-twitter-servi...
- kennu 6y agoI'm hoping WebAssembly and its APIs will rid of us the regular platform version updates and deprecations that we now face, having to move from Node.js 6 to 8 to 10 to 12 to 14 etc. If there is a stable, evergreen platform similar to web browsers, then server-side apps could keep running forever.
- pjmlp 6y agoWebAssembly MVP 1.0 vs 2.0, with and without WASI,...