For desktop software and client-side Web applications, I wonder how much effort is made to test these products on a wide variety of configurations? Judging by how resource-intensive many applications are, it seems that many companies and teams are testing their products on high-end, top-of-the-line equipment and not on low-end configurations. What may perform acceptably on a brand new MacBook Pro (even an entry-level one with Apple's ARM chips and 16GB RAM is no slouch) may be sluggish on someone's four year old Chromebook bought on sale for $149. It's not just performance, but it's also factors such as screen resolution; there are still a large number of users on crappy 1366x768 displays, and these users are going to have a hard time using applications designed with higher-resolution displays in mind.
I'm not saying that all software must accommodate the low end, and I also believe there needs to be a reasonable cutoff (I don't expect software companies to support 20 year old PCs, even if they are still quite capable for non-Web tasks), but I have a feeling that there are unfortunately some companies and teams, even in the open source community, who ship based on their experiences working with high-end configurations, not taking low-end configurations into account.
For one of my side projects that I plan to release to the public once its complete, I have a "minimum viable computer," something in the class of a low-end Chromebook or a Raspberry Pi 4 with a limited amount of RAM (4GB max), that will be used to restrain myself, given that my daily driver is a high-end desktop.
If you want to see a firsthand example of this, try installing Windows 2000 in a VM and see how snappy it feels, compared to Windows 10/11 on your host system.
Yes, Windows 2000 on today's hardware runs like a champ. Even Windows 2000 on contemporary high-end hardware ran very well.
However, I do remember using installations of Windows 2000 on contemporary hardware that weren't snappy. Windows 2000 and XP needed a lot of RAM and a fast processor to be happy; running these operating systems on a machine that met or only slightly exceeded the minimum requirements was an unpleasant experience.
Likewise, my experience with Windows 10 is that it's snappy on high-end hardware, but it's very sluggish on low-end hardware, especially if it's running on a HDD instead of an SSD. Six years ago I bought a refurbished ThinkPad T430. It had an HDD and originally shipped with 4GB RAM. Windows 10 was almost unusable with that configuration. Upgrading to 16GB of RAM helped, but it was still slow. What dramatically improved the system's performance was replacing Windows 10 with Linux Mint running Cinnamon. Suddenly my ThinkPad became pleasant to use.
By comparison, I have absolutely no issues with Windows 10 running on my 12-core Ryzen 3900X with 64GB RAM and a PCIe 4.0 SSD. But that's high-end hardware.
While generally true, my feeling is this law doesn't hold for many people here. Arch, fluxbox, st, tmux, vim, mutt, ... My system boots up in seconds and is extremely snappy, even on 10 year old hardware.
This has been true of OSX, especially since around 10.15. The performance degradation of the upgrade to 10.15 from 10.14 was so immediate and severe that I reverted it.
The interesting thing about this is that early Mac OS X was the opposite, with each release being faster than the previous. The very first consumer release of Mac OS X (10.0, Cheetah, 2001) was said to be rather sluggish. Addressing this, Puma was an improvement over Cheetah, which was then replaced with the even faster Jaguar, which was replaced with the even faster Panther, which was finally replaced with the even faster Tiger. There were some slowdowns when Leopard was introduced (which is why I have Tiger installed on my PowerPC Macs), but this was fixed when Snow Leopard was introduced, which had no new consumer-facing features but had many optimizations and infrastructural improvements.
I'm not saying that all software must accommodate the low end, and I also believe there needs to be a reasonable cutoff (I don't expect software companies to support 20 year old PCs, even if they are still quite capable for non-Web tasks), but I have a feeling that there are unfortunately some companies and teams, even in the open source community, who ship based on their experiences working with high-end configurations, not taking low-end configurations into account.
For one of my side projects that I plan to release to the public once its complete, I have a "minimum viable computer," something in the class of a low-end Chromebook or a Raspberry Pi 4 with a limited amount of RAM (4GB max), that will be used to restrain myself, given that my daily driver is a high-end desktop.