4 ms·
The history of Operating System development is really interesting in that the decisions of what the atomic element of the system are (files, documents, or appli
by bane 2y ago
The history of Operating System development is really interesting in that the decisions of what the atomic element of the system are (files, documents, or applications) lock all future development into a certain path, but all the choices not made then have to be somewhat retrofit into the design. For decades systems have dwelled in a kind of morass where they seem to focus on trying to implement different variants of the other two, with one of these atomic elements as the core concept.
For example, the dominant atomic concept in Xerox Star was the document [1]. Documents are an abstraction just above files. A webpage is a document, but is made up of numerous files like the graphics, fonts, executable scripts, etc. Document oriented systems like Star also deemphasize applications. The system is supposed to open up the correct application(s) when you choose to interact with a document. But even with this as the core abstraction, the system still had to provide methods to work directly with files and applications.
Other systems, like Plan 9, nixes, MS-DOS, CP/M, etc. focus on the file as the atomic primitive and try to build around that. But when things moved to GUIs, many of the development teams focused on the Applications. Windows 3.x famously only showed users organized collections of applications, with file management as just another application. But Windows 3.x was sitting on top of DOS which oriented itself around files. The nixes in the meanwhile forgot about documents almost entirely.
Where I think they've failed to evolve is not in reimplementing these three things over and over, but in assembling them into useful, higher-level, abstractions. What I really think is missing is a way to assemble two higher-levels: workplaces which implement workflows.
Pipes and scripts sort of mimic workflows, and desktops sort of mimic workplaces, but these concepts have really stalled and there's almost no real system-level tooling for building these things, especially in a GUI. For example, scripts are really used as a kind of a way to assemble pipes into pseudo applications + automation, but it's hard to turn them into real workflow tools, and desktops just allow you to dump a bunch of application windows and files into one place, but there isn't any real scoping to it.
1 - https://youtu.be/xJzYRgmnJrE https://youtu.be/xJzYRgmnJrE
- dredmorbius 2y agoThe Star's document seems similar to me to a project folder or perhaps a composite archival format: tar, WARC, EPub, etc. The latter are useful for keeping various assets together, though at the cost of complexity when working with them. Makefile management ties together a set of resources and independent tools in a different way.