Why buying better hardware doesn't help anymore
If you are in the market for new hardware or software, it's efficiency you are looking for, not features or glamour.
If you are in military, slow software can cost you life (target selected, wait, applying updates...). If you work at hospital, slow software will inevitably kill some patients. If you run a business, slow software can eat all your profit and send you to bankruptcy.
This blog post was written on an awesomely fast computer: Atom 1.6GHz. Yeah, I know there are faster ones, but this one is fast enough. What's not so fast is the software that runs on it.
Atom 1.6GHz with 1GB RAM is about 10,000x faster and it has over 10,000x larger memory than PC XT. Yet the software that runs on it is visibly slower than DOS programs that ran on the PC XT.
Back in the 90s, all optimizations were dismissed with an argument that next year's computers will solve the optimization problem for free. It was partly true, but the next year also brought new software that was inefficient enough to more than offset all hardware improvements.
In 2000s, the argument changed. Now hardware isn't divided into "old" and "new" category. Now it's "cheap" and "quality" hardware. Such division has the neat advantage of allowing developers to blame users for performance problems. It's user's fault that he bought crappy hardware, isn't it?
Except it's not user's fault. It's user's wise choice. Computers were meant to work for humans, not the other way round. Expensive computers make people around the world work longer hours in order to pay off hardware vendors who supply them the flashing, beeping boxes.
2000s have been the age of the Internet. Computationally expensive operations can be performed in the cloud. Clients only need to display the final view of the data. Developers then have to eat their own dogfood, so to say, by footing the bill for cloud hosting.
Unfortunately, from business perspective, it makes sense to shift workload onto the client, because Internet businesses don't have to pay for user's hardware. So all the inefficient code returned back to the client with the added overhead of JavaScript, DOM, and needless network chatter.
2000s have seen another undesirable development. Hardware became subject to fashion trends. It started with notebooks and PDAs and later continued with netbooks, smartphones and tablets. Hardware vendors keep trying to persuade consumers to buy strange hardware: smart TVs, personal clouds, chromebooks, you get the idea.
Software went the same route. The newer operating systems and applications are better in some ways and worse in some other ways. There's constant change without progress. Change without progress is the definition of fashion.
Like in other industries, fashion keeps the economy going despite lack of true innovation. Hardware and software businesses learned one more trick from older industries: planned obsolescence. Shorter hardware lifespan replaced Moore's law. Software vendors are switching to subscription services, which are essentially forcing users to pay for the software forever, regardless of whether it improves or not.
What's a poor user to do? Firstly, one has to realize that all the shiny new stuff is a ripoff. Most new software now comes from startups, often funded by hot VC money. These companies are run by ambitious individuals looking for ways to get rich fast.
At the same time, the big corporations are trying to position themselves as expensive premium brands and play bundling games. Engineering spirit is dead except maybe in the open-source software niche.
Times have changed. Going slowly with upgrades and new technology adoption is now the wise thing to do. Adding more software without good reason just steals time. The 4S - small, simple, stable, and speedy - are now the hallmarks of quality.
Nevertheless, one cannot escape the fashion trends entirely. The fashion trick was effective in other industries. It's bound to work with hardware and software as well. Using niche software is inefficient. One has to go with the crowd to some extent.