Re: Modern software - throw more horsepower at it...
""You really don't know how software works."
Explanation, please."
Okay... my explanation of my comment (driven by the insinuation that I as a modern developer am lazy) is this:
"In the old days, programming had to be *massively* optimised to eek out as much functionality as possible on hardware with, by todays standards, exceptional limitations."
Software also had very limited requirements in the "old days" - simpler hardware, lower expectations on what software could do, less support for multiple devices/setups. The nature of the languages at the time often required the developers to be working at a lower level than alot of today's developers anyway. I say alot, because those types of developers still exist. As embedded developers, driver authors, and many other roles you're not really thinking about.
"These days, the era of optimised code seems to have been shelved."
Not true, though it may seem that way from your casual desktop/smartphone user. Every place I've worked in there's been a drive to optimise anything they could, be it UI for desktop software, processing of data on embedded devices running ucos, or whatever. I worked for a manufacturer who built their own processors, and as a result could control and eek out every last bit from the chips.
"Instead, we have frameworks on top of frameworks, all geared to making a developers life easier, at the expense of raw processing power."
Frameworks on top of frameworks help separate complication, encourage code-reuse, and let people deal with higher level problems without the need to get into the nitty gritty. So in a sense, it does make a developers life easier - that doesn't mean their work is easy, or that raw processing power is lost. If processing power is lost, there is either a very good reason for it, or as you suggest they are terrible frameworks.
"I recall a similar outcry with newer releases of iOS running on older iOS devices - my now aging touch 2g was spankingly fast until I upgraded to iOS 4."
I'm assuming they added features, bug fixes, support for new features (that probably arn't available with your old hardware) - that doesn't come for free in terms of processing power really. It's the same on android, it's the same on windows. The more services/complication you add to the setup the slower things get. If it was that slow they should have warned you, or given you the option to downgrade.
"It's a continuous hardware upgrade cycle driven by software - sure, that's always been the case - but I can't help feeling modern programmers have got really lazy ..."
The hardware upgrade cycle isn't driven by software, it's driven by companies trying to sell more devices, or meetinf the demand from consumers for faster/cooler/smaller devices that exceed the previous devices specs/features. If anything the software is driven by the hardware cycle - software has been struggling to keep up with the hardware improvements. Multi-core development, the thousands of devices with different specs, the call from people using new phones that they want support for their device - while people using 3 year old devices demand the software also works for them still.
But, thanks to those "lazy" developers and frameworks all that is possible.
I'll probably get torn apart for a very "boo hoo, we developers are hard done to" style post... but I've had to quickly smash the post out in like a minute before I leave - so I'll have said some silly things... probably. :)