Comment by ryandrake

3 years ago

The "plug in a monitor" case is an example where computers are hilariously (and likely unnecessarily) slow to do something that should be simple.

Say I have two monitors plugged in and running. When I plug in a third one, here's what happens:

1. Monitor 2 goes blank.

2. Monitor one flashes off then back on.

3. Monitor 2 comes back on.

4. Both monitors go off.

5. All three monitors finally come back on.

Putting on my developer hat, I kind of know what's going on here. The devices are frantically talking to the device drivers, transmitting their capabilities, the OS is frantically reading config files to understand where to display the virtual desktops, everyone is frantically handshaking with everyone else. It's a terrible design and should not be excused. Putting on my end-user hat, what the fuck is this shit? I just plugged a monitor in. I'm not asking the computer to perform wizardry.

Even if the frantic handshaking is somewhat necessary, I don't think it's justified that it takes over 1 millisecond, let along multiple seconds with monitors turning on and off in the meantime. Seems like shoddy work on every end.

  • > Even if the frantic handshaking is somewhat necessary,

    I don't believe it is. Sure, it's probably necessary in this frameworks of frameworks systems we're running right now. Drivers, kernel, privilege levels, userspace, whatever. But I believe if we were to rewrite everything from scratch without the 90s technical debt and careful planning beforehand it would be easy to have a dynamic monitor connecting algorithm which doesn't suck like that.

    A promising concept in this space: (me not affiliated) https://www.theseus-os.com/Theseus/book/index.html