By now, almost everyone has heard of Moore's Law, which is often intepreted to mean that our computers will double in power every 18 months (or 24 months depending on who's intepretation you are using). This "law" has held up for 40 over years and is still gong strong.
Every few years, the scientists who work on the front lines of integrated circuits look forward and see a potential wall that limits how far current integrated chip technologies can take us. So far, those same scientists have been able to adapt new techniqies and new technologies to blaze paths around those walls. From a hardware point of view, and from an consumer electronics point of view, this is the best thing since... well the integrated circuit.
I am not a Microsoft Basher (or apple basher, or google basher or...) and I make my living developing software. But I sometimes wonder if our real world computer experiences wouldn't get a lot better if Moore's law was to fail for a few years.
The ever increasing hardware allows us to mask software bloat. Next years hardware will be 50% faster than this years. So, we can hide bloat that eats up, oh, say 20 or 30% of that increase. Iin a year or two, that 30% loss won't even be noticed.
BUT (yes, this is a big BUT) , to misquote a favorite political truism: a gigahertz worth of bloat here and a gigahertz there and pretty soon it starts to add up to some real horsepower.
I know many of you are reading this and thinking of Microsoft, and that is fair, Microsoft Windows and Office have more than their fair share of bloat. The the problem doesn't end there.
Software in highly competitive markets live and die by features.
Performance is important, but only in a relative sense, how does my performance line up with my competition? If our code bases are equally bloated, then performance drops out of the evaluation critieria and it's back to front lines where features and perceptions win or lose the day.
If we couldn't rely on newer, faster, cheaper hardware to hide the bloat, we would have to go back and do things right. The feature wars would slow down, and software would once again begin to differentiate by concentrating on different features for different kinds of users. Software companies could get out of the escalating arms race where every competitor's newest feature has to be countered yesterday.
Damn the Bloat! Full speed ahead... That is the attitude that is forced upon most engineers in the software industry. I think almost all software engineers would love to step back and be allowed to design software that really helps our end users, rather than constantly scrambling to counter our competition's latest moves.
Don't read this the wrong way. In general, today's software is a much better experience than the software of a decade or two ago. But, it's far short of what it could be. Far short of what we should be able to do with all the computer horsepower at our disposal.