I took it down as it was fairly rambling and didn't do a good job to explain (confused people). I'm building the MVP atm. If you're interested to learn more, you can write me at keeper@crux.garden. I'd like to find collaborators.
If there was a valid reason to write software that efficiently, besides idealism, I'm sure developers would do so. But there isn't in the vast majority of cases, so we don't. iow computing resources are cheaper than labor.
I'm working on a small web app right now inside a VM and it's consuming around 2.5 GB of ram (and I believe Firefox is taking 2 GB). It's i3wm, tmux, vim, zeal, and php. So theorically, I could work on a 4 GB computer easily. But we have people here hollering that 8GB is too low for a modern machine.
Buying a beefy computer for a developer is cheap, but forcing everyone using your software to default to a 16GB computer isn't. And that's why we get when consumer software takes more ram to run than Windows XP.
I love seeing all these helpless billionaires and business owners flail trying to get people back in the office, with increasingly BS reasons. The world moved on and they can't stand they lost a tiny bit of control over workers.
Sure, if you want your best developers to leave. The question "Should I force...?" should always be met with the utmost skepticism. That's not the way to lead.
Every program you will ever write: Input -> Transformation -> Output. That may sound annoyingly simplistic, but internalizing that one concept gives you a foundation to break down any problem you encounter.
You can distill it even more than this. All we ever do as programmers is take some kind of data as input, process that data, and return new data as output. This is true for all software: websites, mobile apps, video games, AI, operating systems, embedded systems...ad infinitum.
The Swimmer by John Cheever and The Ones Who Walk Away from Omelas by Ursula LaGuin are my favorite short stories. So much depth and feeling packed into such tiny packages!