When using Zig functions and structs on the low side there are some nice opportunities for making the low/high interface more automatic at comptime, especially when you're jointly compiling (your Zig code + a Zig-based Python interpreter + your Python code) together into one WASM blob.
Disclaimer/public-commitment-to-getting-it-released: I've written most of a Python interpreter in Zig as part of another project. (just the basics — won't be big and professional like CPython.) I'll reply here eventually when it's done, available as FLOSS, and ready to say "high-low".
ABIs are not enough, it is a huge pain in the ass to setup the function invocations, especially cross-platform. Having separate compiling and linking steps for each part of the codebase and stuff is a huge pain.
I think Bun (NodeJS-compatible runtime) was planning to add native support for importing C and Zig code directly from JS with typescript codegen. But even that is still a bit meh, you also need some data-exchange format so you can pass complex data structures without paying a serialisation/deserialisation cost.
I have no means to check this page on my mobile now, but if it was me making it I would have used WebRTC, plus some backend to pair random peers. I think E2EE can be implemented on the stream.
> I invite them to attempt writing a few million words. It will give one a very considered view on one’s own style.
That it will! I recently went from [not writing many documents] to [writing a ton of documents], and it turbocharged my reflecting-on-style background process.
Thanks again for your documents over the decades!
...and as a quote in HPMOR put it:
> Apparently people who were in books actually sounded like a book when they talked.
https://en.wikipedia.org/wiki/Ocean_surface_topography
https://en.wikipedia.org/wiki/Geoid