“Existing software engineers could easily optimize our existing software”
I don’t think they actually could! Even if software engineers really wanted to (which they generally don’t) and had the skills to (which seems to be becoming rarer), the software belongs to corporations, not to the engineers, and the corporations would never let their engineers optimise their software like this. (And if they did, they’d switfly be outcompeted by other corporations that could ship faster more featureful software.)
I think “ability to write efficient, optimised consumer software” is essentially no longer accessible to our civilisation for inescapable economic reasons, just like “ability to build beautiful architecture instead of featureless undecorated glass rectangles”, “ability to build interesting cars instead of bland blob-shaped automatic five-door huge-touchscreen front-wheel-drive SUVs”, etc. etc.)
“Electron apps as native code trades scarce resources (engineer time) for abundant resources (compute)”
I agree this tradeoff is definitely a factor—but I don’t think it’s the only tradeoff. We’re also trading-off things the average user doesn’t understand or notice (efficiency, privacy, reliability) for things they do notice (features, a fast release schedule, fancy graphics/UI, network-effects). That’s why the Microsoft Windows “start menu” is now a React app.
I think this results in worse software but that it’s inevitable and out of our control, not a choice where we could choose to do it differently if we wanted to: the corporations that control almost-all closed-source software would never let us optimise their software for things their users barely even noticed, even if it made the software better for those same users, and if by some miracle a corporation did let us they’d rapidly lose all their users to rival corps.
abundant resources (compute)
The resources are only abundant so long as we keep pounding away on the upgrade treadmill and never fall behind; today’s high-end phone or computer is tomorrow’s useless e-waste, and that’s a problem that should be (in theory!) entirely fixable in software. The reason a 5-year-old phone takes ten seconds to open a web browser, or a 5-year-old-video card can’t play a modern AAA computer game, or a 7 or 8 year old PC can’t even fit Microsoft Windows + Google Chrome into RAM is problems with the software, not with the hardware.
(Obligatory Linux/FLOSS mention: there does exist super-optimised software that has all the superficial features users notice and all the under-the-bonnet features that make the software actually good/effective to use and it’ll run snappily on a fifteen-year-old computer and it’s free. Why consumers don’t seem to want to touch it is a mystery to me!)
I’m not really sure if we disagree on the high level situation.
You mention that corporations won’t pay their engineers to optimize software, and that a corporation that does would be outcompeted because users prefer software with more features over optimized software, and you even note that in some cases better optimized software with fewer features is free and users still don’t choose it.
I think you’re overestimating how hard it is to write optimized native apps though. It’s tedious to write 5 native apps instead of one Electron app, and the frameworks are worse and slower to work with, but it’s not that hard (also if you need to display anything, you might need to embed a browser anyway). And I think AAA games are not a case of software being less optimized. I expect that on the low end, game developers are putting less effort into optimization, but AAA games on high settings don’t work on old video cards because new video cards are magic (real time ray-tracing!).
I don’t think they actually could! Even if software engineers really wanted to (which they generally don’t) and had the skills to (which seems to be becoming rarer), the software belongs to corporations, not to the engineers, and the corporations would never let their engineers optimise their software like this. (And if they did, they’d switfly be outcompeted by other corporations that could ship faster more featureful software.)
I think “ability to write efficient, optimised consumer software” is essentially no longer accessible to our civilisation for inescapable economic reasons, just like “ability to build beautiful architecture instead of featureless undecorated glass rectangles”, “ability to build interesting cars instead of bland blob-shaped automatic five-door huge-touchscreen front-wheel-drive SUVs”, etc. etc.)
I agree this tradeoff is definitely a factor—but I don’t think it’s the only tradeoff. We’re also trading-off things the average user doesn’t understand or notice (efficiency, privacy, reliability) for things they do notice (features, a fast release schedule, fancy graphics/UI, network-effects). That’s why the Microsoft Windows “start menu” is now a React app.
I think this results in worse software but that it’s inevitable and out of our control, not a choice where we could choose to do it differently if we wanted to: the corporations that control almost-all closed-source software would never let us optimise their software for things their users barely even noticed, even if it made the software better for those same users, and if by some miracle a corporation did let us they’d rapidly lose all their users to rival corps.
The resources are only abundant so long as we keep pounding away on the upgrade treadmill and never fall behind; today’s high-end phone or computer is tomorrow’s useless e-waste, and that’s a problem that should be (in theory!) entirely fixable in software. The reason a 5-year-old phone takes ten seconds to open a web browser, or a 5-year-old-video card can’t play a modern AAA computer game, or a 7 or 8 year old PC can’t even fit Microsoft Windows + Google Chrome into RAM is problems with the software, not with the hardware.
(Obligatory Linux/FLOSS mention: there does exist super-optimised software that has all the superficial features users notice and all the under-the-bonnet features that make the software actually good/effective to use and it’ll run snappily on a fifteen-year-old computer and it’s free. Why consumers don’t seem to want to touch it is a mystery to me!)
I’m not really sure if we disagree on the high level situation.
You mention that corporations won’t pay their engineers to optimize software, and that a corporation that does would be outcompeted because users prefer software with more features over optimized software, and you even note that in some cases better optimized software with fewer features is free and users still don’t choose it.
I think you’re overestimating how hard it is to write optimized native apps though. It’s tedious to write 5 native apps instead of one Electron app, and the frameworks are worse and slower to work with, but it’s not that hard (also if you need to display anything, you might need to embed a browser anyway). And I think AAA games are not a case of software being less optimized. I expect that on the low end, game developers are putting less effort into optimization, but AAA games on high settings don’t work on old video cards because new video cards are magic (real time ray-tracing!).