> There’s just no reason to waste time tuning software for optimal efficiency if the users hardware is powerful enough they’d never even notice.
…but users do notice. They notice that their browser is slow, 8GB RAM isn't enough, every app they download is multiple hundred megabytes or even multiple gigabytes. Only very rarely can apps justify being that large.
I build native apps and pick native apps over alternatives and the experience is much, much nicer.
Whether users could articulate what they're experiencing is a different question. The bad experience we're talking about had been normalised over the past 15 years or so.
I could counter that by saying people have had unpleasant experiences with software before, too; being way too technical and non-intuitive is one of that.
But my point isn't just that users won't notice anyway, but optimising for that isn't a good strategy anymore—at least from the perspective of commercial software vendors. Performance tuning reaches a point of diminishing returns very quickly.
I like to joke giving engineers fast machines is a mistake, that having them on 8GB dual-core Celerons would help optimise their software.
OTOH, it’s also a valuable strategy to give them now the machines that’ll be mainstream when the product is finished. That one I learned from Alan Kay and the Alto.
Apple's ecosystem is incredible, all the APIs they provide, all the neat little native functionality you can build into your apps, all virtually for free, and a user base that cares about the quality of their apps and is willing to pay for it.
There's no better platform for building a native app, in my opinion.
Don't get me wrong: I recognize that there are legitimate reasons for some of the increased size of software. I am also willing to accept that some inefficiency is justified in order to improve the quality of life for developers. On the other hand, we should not be ignoring efficiency for the end user solely in favor of efficiency for the developer.
> On the other hand, we should not be ignoring efficiency for the end user solely in favor of efficiency for the developer.
Neither do I. But the economic incentives are stacked differently.
I personally still value it, and I try to build super-efficient apps, but... I'm the minority. And I can understand why.
Sure, it can add up, and we shouldn’t waste resources just because we can, but I’m not going to lose sleep trying to optimize it when the rest of my system still has the other 98.4% of RAM available for use.
Modern computers are very powerful. To make cool apps, developers don't have to work extra hard to make their apps super-efficient. Developers are very expensive, so companies do not letting them work on things longer than necessary if it will not earn them a lot of money. Most people buy apps for the things they let them do, not because they are very fast. This is why many companies don't make super-efficient apps anymore.
If built properly from the beginning, fewer resources will be needed, including developer time.