Houyhnhnm Computing
ngnghm.github.io
ngnghm.github.io
See, for instance, the first example, where the C programming environment is presented as "simple", but then acknowledged to be actually enormously complex, due to the many specific platform assumptions presupposing it (such as the abstraction of files and directories, which every human developer today comprehends as practically a law of nature).
There is a price to be paid for tightly coupled system.
I forgot but there was this good book on mathematics that paul graham recommended.
That book talks about the fact that every 100 years in mathematics there is an explosion of innovation and then at the end of a period there is integration.
Having diversity is how things improve - its also the basic law of physics - entropy.
By creating chaos we learn more about how to do things better, either it be software or mathematics. So to those software craftsman who are complaining about diversity - grow up, this is how all of science works.
There was an OS that had a similar component oriented model to what was being imagined here, and that was Apple Taligent. It was built around the component embedding model "OpenDoc" and had editors for types of content not types of file. It turned into a never-arriving death march, and I have a feeling that part of the problem is that in the presence of diversity of choice, the component model sucks. How can LyX and Microsoft word operate as components, and share data, when their assumptions are so radically different? The answer is that they can't, and that component data will live in little silos unless flattened down to a deliberately weakened structure like plain text cut and paste. Unless you have One Twue Text Editor. And One Twue Pixel Editor. And so forth. It's an ecosystem that can only tolerate tyranny. (Microsoft's tiles UI suffers the same problem. Looks pretty and makes sense only on a phone where they have all the programs under their thumb.)
The author starts out the first chapter by explicitly comparing the development of the human computing ecosystem to evolution, and the entire thrust of the series seems to be the nature of systems designed by creatures capable of seeing the Rational Way To Do Things and unencumbered by our historical human foibles. Which is a developer's wish-fulfillment fantasy, to be sure, but science fiction about ideal worlds can help to reorient our priorities on this messy planet.
We can talk about plenty of things that are (in human-speak) part of the requirements for OSes now that, X years ago, weren't. But (a Houyhnhnm might say) there's an exhaustive set of all things that an OS (qua an OS) should do, and once you have that, you have an OS that will stand the test of time (essentially) unchanged. We hadn't (and probably still haven't) enumerated and implemented all of these capabilities simply because our primitive computing technology base is still coming of age.
Really, to a computer scientist in 1960, an OS was probably just something that made his mainframe go so that he could do more interesting things. It would take a optimally-rational equine being to sit down at that stage and work out exactly, in an ideal sense applicable to all feasible computing devices, what an OS should be. And its still the case, since I doubt the architects of modern OSes give much thought to quantum computing interfaces or nanite-cloud networking or whatever. But adopting the Houyhnhnm-ist manner of thinking about OSes (or more humble applications) as implementations abstract ideal entities rather than bits of machinery might make it easier when, however long down the road, someone is trying to use our work for something that we hadn't foreseen.
In the meantime, there is a bad recording of an earlier take on the same ideas from LispNYC. The talk at LambdaConf was definitely better delivered, though. https://vimeo.com/155517248 http://www.meetup.com/LispNYC/events/224215944/
https://github.com/urbit/urbit
Alien virtual machines and that kind of thing.
Either that or Loper OS http://www.loper-os.org/