I’ve been getting very into this idea recently of programmable, ‘living’ programs, with maybe Emacs running on Emacs Lisp being the most famous and popular extant example of what I mean. As the above article calls it - programs that are basically ‘interpreters with a function’.
There’s the Nix-inspired functional operating system and package manager Guix: Guix: A most advanced operating system which is written in and programmable with Guile Scheme, which is fascinating, and most recently I’ve been getting into Nyxt browser: GitHub - atlas-engineer/nyxt: Nyxt - the Internet on your terms. which is programmable in Common Lisp.
I will admit first of all that all this was just for fun and learning, and because I like the ideas behind these projects. However, the further I understood what was going on and thought more about the ideas behind Emacs, I started to wonder if we could have the same kind of power and programmability with Safe somehow.
I had thought that maybe Guix could have some relevance to Safe, as it is very auditable, and very good for reproducible, trustable builds of software bundles (packs, they call them).
Whenever anything interesting happens in software someone immediately makes an Emacs package for it anyway, so I didn’t feel I’d have anything to add there. Emacs is amazing for text but has poor support for video and heavy graphics stuff as far as I’ve understood, so this would maybe be limited.
Looking at Nyxt thought I started to get more excited - they are trying to be renderer agnostic, you’ve all the power of industrial-grade common lisp, and they seem to be developing a strong little community of fans / codevelopers. I’m probably in that group at this stage.
So, the thing I’m wondering is how hard it would be to get Safe Network going in a browser like Nyxt. This is something I’d be thrilled to work on myself, but feel it is probably beyond me for the moment.
Is there some blocker to the idea that I don’t see? Is there some incompatibility that I’m not getting, from a bird’s eye view? Some small technical issue from close in?
Has anyone else been thinking about this kind of thing? The thing about Emacs that I’d love to see as part of a future Safe culture is the documentation culture, and the shareability of ideas in the shape of code.