In a world where we know that hardware is supposed to double in power every year, is there any incentive to develop software that doesn't consume more and more power?
I remember several limitations that were imposed on games due to hardware in the past, but without those limits, are we developing worse and worse quality software?
This is genuinely a question, I don't know how we stack up to the greybeards, but I am willing to bet that we hardly can.
Look up things like Geos (graphical 8-bit OS) or look at the original Quake source code. The stuff we develop today is woefully inefficient compared to software of the past. I routinely use apps on my quad-core 64-bit notebook that are slower than comparable apps on old sub-100mhz 32-bit machines in the late 90s.
One factor is certainly as elsewhere stated the pressure to ship fast and cut labor costs, but I'm not convinced this is the biggest. I think the biggest factor is that developers love to over-engineer.
Nostalgia is natural, and I'm not immune. But in the words of Billy Joel [1], "the good old days weren't always good, and tomorrow's not as bad as it seems."
Now, let's start with that "Evolution of a Programmer" meme (fortunately not the graphical kind). It wreaks of smug superiority, most clearly seen in the CEO section at the end. If that situation ever actually happened, I would blame IT for giving the CEO a Unix setup with no GUI, not the CEO directly. The "Seasoned Professional" and "Master Programmer" sections show the excesses of mid-90s C++ and Windows programming respectively, and not what a programmer worthy of either of those descriptions would really do.
Speaking of excessive COM (as in the "Master Programmer" section), excess does sometimes get cut, particularly under competitive pressure. See for instance Mozilla deCOMtamination. [2]
Not all COM is excessive though. Even some of the heavier parts of it (the global class registry, type libraries, cross-process calls, IDispatch) have their place. For instance, they enabled the rich ecosystem of third-party developers working with Microsoft Office (the desktop version). All of this is light years ahead of GEOS or DOS, though it was all there in late 90s Windows.
Also missing from GEOS, as well as from graphical applications running on DOS, were important features like internationalization, accessibility for people with disabilities (e.g. blind people with screen readers), layouts that could adapt to different screen sizes and font size settings (accessibility again), and high-quality proportional text rendering. I'm sure there's much more I'm forgetting.
@api, if you read this in time, I'd like to know which late 90s operating system(s) and applications you remember as being faster than today's equivalents. I can't deny that there's bloat in today's software, but that's nothing new. Hell, people complained about bloat in the 90s, and probably before that. And maybe I can point out some ways in which today's platforms and applications are better than the ones you look back on with nostalgia.
The problem probably lies with the pressures of business, if you can get away with writing inefficient software it means you can get away with hiring less skilled developers, paying them less than a competent developer, and compressing project timelines to the point where refactoring and optimisation just isn't a thing that happens.
Over in FOSS-land, Software tends to be a hell of a lot more efficient, without the pressures of a restrictive budget, the software developers tend to do their due diligence more often.
The pressures of business lies on the fact that most consumers prefer more choice of which software to run than being able to run more software at the same time. This must have been true from the beginning when at first hardly anything was designed for the layperson. This is the magic of Windows 95.
One factor is certainly as elsewhere stated the pressure to ship fast and cut labor costs, but I'm not convinced this is the biggest. I think the biggest factor is that developers love to over-engineer.
This is so, so true:
http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer....