← Back to context

Comment by gumby

3 years ago

I strongly believe this.

I think there’s an important additional factor, which is how dynamic so much UI is these days. So much is looked up at runtime, rather than being determined at compile time or at least at some static time. That means you can plug a second monitor into your laptop and everything will “just work”. But there is no reason it should take a long time to start system settings (an example from the article) as the set of settings widgets doesn’t change much — for many people, never — and so can be cached either the first time you start it or precached by a background process. Likewise a number of display-specific decisions can be made, at least for the laptop’s screen or phone’s screen, and frozen.

Here’s some sobering perspective on this from 40 years ago: https://www.folklore.org/StoryView.py?story=Saving_Lives.txt

The number of monitors was also checked at runtime at the 90's. The only difference is that by then it was checked only at startup, and now there some aynchronous function that checks it all the time... What is to say that now it should be faster.

On any of the complex Linux DEs, the set of settings widgets was always set at startup, since those complex DEs existed. On Windows that varies from one interface to another (there are many), but at least for Win10, things have gotten much more static on the new interface. (I dunno about 11.)

Anyway, the amount of things you can read from the user on a Windows app startup time is staggering. The applications on the article have many orders of magnitude less (relevant) data to deal with.

  • 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.

      1 reply →

Maybe "dynamic" in one sense, but so many of these Electron apps don't even support window maximization/resizing properly...

  • Electron is truly the worst of both worlds, used by those who don't care about the user.