Is anyone here using WASM?
A decade ago I expected WASM might revolutionize deployment of software tools. A C# developer friend of mine now regularly uses Radzen and Blazor, which make use of UI components compiled to webassembly, but I don't see many equivalent solutions. Pyodide is currently too big, clunky, and limited to be really useful as a clean WASM solution for Python, though it may solve some problems in a pinch - I think most environments that support Pyodide would probably be able to support a full install of Python just as easily, and the benefits to that path are overwhelming. I'm curious if anyone has successful experience using WASM as a deployment target.
posted by: Nick 12-Nov-2024/9:30:40-8:00
Two of the first backends I wrote for Meta generate WebAssembly in text and binary formats. They're proof-of-concept to steer the Meta design. The backends themselves are incomplete and unpublished. But the C backend for Meta can use Emscripten to compile to a web page. I decided to have it generate JavaScript in the Meta Web Console, because it's slightly smaller and compatible with older web browsers, but I may as well have Emscripten generate WASM. There are also other C toolchains that could be used to compile Meta programs into functional WebAssembly.
posted by: Kaj 13-Nov-2024/17:48:06-8:00
That's interesting :) I'm curious to hear anything else you'd like to share about your experience building Meta, more about how development is progressing, anything about projects you're doing with it, etc.
posted by: Nick 14-Nov-2024/15:58:44-8:00
At first I designed the language around WebAssembly, to generate text and binary forms. Then I extended it to generate C, because then you get access to mature C compilers and standard libraries for many platforms. Despite the name, WebAssembly is fairly far from traditional assembly, more in the direction of a medium-level language. So I also made a proof-of-concept backend to generate 6502 machine code directly, to make sure the language design can do that, too. Because there are C toolchains that generate WASM, the C backend for Meta will also be the main backend for WebAssembly for some time to come. It's almost there. Like many other platforms, only an extra C toolchain and mult-target support in the Meta toolchain are needed. Any other projects, I try not to say too much about them, because in practice, the time planning always changes, so I don't want to promise things that may be rearranged later.
posted by: Kaj 15-Nov-2024/13:14:06-8:00
All very interesting because it's so far from the scope and type of work I currently do (database backed UI). I hope your projects are going well! At some point I'd still be interested in contributing to database connectivity, authentication, etc., if/when that gets in your roadmap and I get a break from current projects.
posted by: Nick 16-Nov-2024/12:24:22-8:00
|