Composability, homogeneity, and language-based systems

John Ohno
3 min readSep 18, 2018

I’d like to describe and distinguish between three related but distinct ideas floating around in the small but vibrant community of alternative OS design: composable user interfaces (which I didn’t coin but popularized), homogeneous operating systems (coined by Eccentric Computing to describe TempleOS), and language-based systems (coined by Fred Schneider but generalized by Lukas Hartmann in his proposal for InterimOS).

A composable user interface is a system where components under control of the user can be combined together. For instance, command line tools in the UNIX command line are composable because they can be combined using pipes (and these compositions can be saved as shell scripts and reused in an automatic way), while a collection of graphical applications in X, although they can be used together by pasting the output of one into another, is not composable because the communication between them requires user input. A modicum of composability can be created in non-composable systems through an automation language (such as AppleScript), but because this is not an integrated part of the interface and a natural extension of normal use (the way pipes are for the command line), this does not make the UI itself composable. A composable UI can be text-based (for instance, practically every programming language has composability, and both bourne shells and the powershell allow for composition of foreign components), or they can be graphical (such as the Alto GUI or HyperNeWS), or they can be console-based (like…

--

--

John Ohno

Resident hypertext crank. Author of Big and Small Computing: Trajectories for the Future of Software. http://www.lord-enki.net