It is astonishing to me just how bad end user software has gotten over the past twenty years. It's just goofballs. It's not like that point was when software started requiring more resources, the "What Andy giveth Bill taketh" aphorism was coined in the 90s after all. Software gets complicated over time. Every bug fix or added input validation or whatever adds code. That's fine and appropriate. Convenience and integrity add code/complexity. That's not what I find so bothersome.

I find 2006 an interesting horizon. It was then that the average home computer massively jumped in processing power compared to the software running on it. For the vast majority of users the computer spent more idle time waiting for input than users waited for output. Of course for some users there's never enough power but for most all of their tasks were effectively instant. Even heavyweight (for the time) stacks like Java ran incredibly well. He'll even Emacs could run well!

Then the curve seemed to invert. Hardware kept getting more capable with even faster CPUs, more cores (on common consumer machines, and more RAM. As the article points out a "lightweight" Linux DE with native apps really flies on such hardware.

But more development seemed to move to the web. More JavaScript required more powerful JS engines and those are up more and more memory. More shit loaded into the DOM means more and more objects on the heap with more pointer chasing.

Modern stacks are really only fast because modern computers brute force their way through them. A simple CRUD type task that fly as a VB or Delphi (neither stack performance kings) app on Windows 2000 now requires a 2GHz dual core CPU with 4GB of RAM as a baseline thanks to it now being a web app.

Using a twenty old machine with native applications and the CLI feels to me like a super computer compared to the computers I first used (Apple IIs). A Core 2 Duo is a stupidly powerful CPU for most tasks. If you can get by with a command line workflow even a Core 2 Duo is crazy fast.

/soapbox