3 ms·
Small, composable "Unix philosophy" programs need a substrate in order to work well, and that substrate can be heavyweight. The Unix kernel itself with its proc
by bitwize 4y ago
Small, composable "Unix philosophy" programs need a substrate in order to work well, and that substrate can be heavyweight. The Unix kernel itself with its process and I/O model is one example (though Plan 9 may be considered an experiment in just how minimal that substrate can be while supporting the essential features of the model). The shell allows linking these programs together in a way that's relatively user-friendly, making the toolkit of composable programs accessible.
Relatedly, the X server is a substrate that allows small modular programs to coordinate in different ways, composing to form a graphical desktop environment.
I think Emacs on Unix is another such substrate. In a way, it's a sort of super-shell that can not only allow the user to compose Unix programs as with the shell, but to capture their input and output in buffers for further editing and processing. The ability to capture text, whether from files, programs, or network connections, edit it in a buffer, and script any operation with Lisp makes Emacs a tremendously powerful tool in its own right and an easily configurable coordinator for your other tools, with enough power to let you put a custom UI over them for smooth, flow-conducive access at your fingertips.
- pjmlp 4y agoInferno was an even better experiment, the kernel and Limbo VM had a minimal attack surface, everything else was based on the same principles as Plan 9 and dynamically loadable modules written in Limbo.