However, I'm not convinced that our OSs can't be much, much simpler. You can, almost reasonably, use DOS as a daily driver still. I have very fond memories of DOS because it was simple. Even as late as the early 2000s, if you wanted something like a MAME cabinet you'd often use DOS. You just plop some application and data folders onto a disk with like 4 system files and you were pretty much done.
Where is today's DOS? I suppose it's Linux, which is orders of magnitude more complicated (especially once you start talking about a GUI) and even Linus admits it has become quite bloated. I personally think we can do a lot better and I've been toying with the idea of putting something together because I'm just so sick of modern computing's bullshit.
PS: If anyone is aware of an organized effort towards this goal that already exists, please let me know.
Still, AppImage is an attempt to bring sanity to the garbage fire of the Linux Desktop. I'd rather have a system that wasn't a garbage fire to begin with.
You seriously say this in an era when Electron exists? You'd be hard pressed to waste more resources by simply not having deduped libraries.
> Package-based distributions concern themselves with this a lot
Yes, and they end up causing a lot more headache than they ever save because of it.
If you want simple nowadays, boot a Linux kernel into busybox. It'll boot almost as fast as DOS but you'll have all the crazy modern amenities like 64 bit support and network drivers.
You don't even need a package manager. You could just unpack a GCC binary and compile all the junk you want yourself.
I like your rule-of-thumb that you should not need a package manager.
Muratori has a theory that USB has made the OS scene complex (https://www.youtube.com/watch?v=kZRE7HIO3vk&t=1350s).
Two other things - the browser and TCP/IP.
Goal: a system where you can fit the whole stack in your head, yet participate in a networked world.
Approach A. Outline a reference hardware platform. Port NetBSD or minix3 or plan9. Then simplify. e.g if unix, get rid of users and groups, get rid of x, get rid of package mgmt, get rid of nfs. You could bootstrap this in qemu.
Approach B. Establish an alternate browser. Something like gopher, but with async events between the 'page' and the user. This allows for chat and form manipulation. You can send non textual content through this async link - video, audio. Codecs are a trap, they lead to pkg management and complexity. How to stop proliferation?
Linux above: You need a hypervisor. See L4 or Genode.
Linux below: See unikernels.
An alternative would be targeting a single set of hardware that's likely to be around a really long time. I'd be ok with that and something like a Raspberry Pi, but only if all the hardware was open. Of course, then you're in more of a 68k Mac space where hardware choices are extremely limited.
I think we are talking about a different niche.
If so, no need to think in terms of catch-up. Rather: work out the design values of this niche.
Lots of ideas, but this thread is already deep. I have created #dinghy on irc.freenode.org, would be interested to discuss further.
2. about web: too bad that design-addict webdev community bloated it. But wish someone make a simpler, faster & straightforward web as portable app platform with few nice commercial qualities...
3. About OS: OS need not be bloated if it isn't running behind popularity by satisfying everyone's remote needs. ( source: plan9, suckless, busybox )...
2. No disagreement here.
3. Unfortunately it still kinda does, because drivers. Two of the ones you listed sit on top of the Linux kernel, which even Linus thinks has become bloated.
Unfortunately the only way to deal with that is to give up on the idea of running on a majority of existing PC hardware and target only a small subset of commodity hardware. Ideally it would all be open, to ensure it isn't going anywhere for a while, but sadly there is no such system.
I'm glad to see I'm not the only one who thinks Users and Groups are the wrong abstraction for systems like this.
Maybe if we all thought like Arthur we'd just use gopher and be able to write a new client or server from scratch in an afternoon.
To be sure, software does have some bloat. But some of the complexity is necessary for software that can be used by the whole world.
Imagine starting from scratch with Genode or what Google is doing with their new (3rd) OS.
I agree that's important, but I don't think that a great OS should become just a good OS in pursuit of that goal. After the OS is made, it seems like there would absolutely be ways to make the system accessible as-needed.
Really? All? And if not all, are we back to the ADA reasonable accommodation standard? What bugs me about the "accessible or bust" people is that they will deprive 99% of the population of something because 1% can't have it. There's some on-going case about university courses in California of some sort being publicly released but "not being accessible". So now, no one can access it because they got taken to court. It costs zero dollars (or very few) to publish existing material to the world; it costs quite a bit more to add stuff to it.
Maybe a great OS should be available which can run quickly without accessibility features, but slower if they are explicitly installed by an end user. Like it or not, it's a balancing act between how much we're willing to give up and for how few people.
Most of the standard conviences available to "normal" people because smartphones are a thing and yadda is how I make my life work.
Among other things, I also co-own a tiny list for blind developers. So I have some familiarity with the fact that there are people who actually need accessible design in a way that I don't.
But I think any internet that works well dramatically improves life for the vast majority of the 60 percent of people who have varying degrees of impairment, two-thirds of whom do not self identify as disabled or handicapped.
Cars were invented for people with sufficient use of their limbs and eyesight. After their invention, the control systems were adapted for people who, for instance, can't use their legs. I don't know of any way they have been adapted for e.g. blind people. And yet, even though they are not accessible to a large fraction of disabled people, the world is better off with cars, designed for not-disabled people and then adapted as far as possible, than without cars.
That's all I'm getting at. Its too much of a constraint on invention, but likely to be adaptable later.
B. If it wasn't clear, I'm generally on your side here.
This might not have been feasible or practical a few years ago.
Office productivity applications have a lot looser latency requirements, and tend to change the screen less frequently than games too. But current solutions are capable of playing videos and some gaming.
Unfortunately, there's only one Arthur Whitney. Other people can emulate his style and genius, but I don't know anybody else who brings this kind of ruthless minimalism to everything they do -- and make it work so well.
And check suckless.org, especially dwm