And, let's be clear - it's only a prohibitively long time if you wish to continue to get the new feature release platforms - indeed, it's only Today, June 11, 2013, that the original iPhone, released in 2007, is now being obsoleted by Apple [1], a full five years after it was discontinued.
[1] http://www.macrumors.com/2013/04/29/original-iphone-will-soo...
If you look at the devices cleared for iOS 7, it's almost definitely a RAM overhead issue. All the 512 MB+ devices (4, 4S, 5, Touch 5, iPad 2+ and Mini) are getting iOS 7. None of the 256 MB devices (Touch <5, iPhone <4, iPad 1) are getting it.
Does it suck? Yeah, definitely. At some point, though, you have to make the tough decision and say, "We have to compromise on either our vision or supporting older devices." When you get to that point, the choice isn't too hard. Is there anyone out there who would really argue that watering down iOS 7 is worth the increased support? (Especially with the US cellphone market and its subsidies being what it is?)
I feel for iPod Touch 4 owners. Like another poster said, those were on sale a few weeks ago. Every other unsupported device is terribly old, at least as far as the pocket computing world is concerned.
My Motorola Defy came with 2.1 Eclair. Runs 4.2 as of now, thanks to Cyanogen. I keep it because it's built like a tank; all phones should have IP67 certification.
Looking forward to upgrading to an S2 or S3 when prices drop to frivolity. A larger screen will be nice.
Tools needn't be new nor flashy to be powerful.
And I'm not hand-waving that notion either. I write apps and I've seen device usage numbers for a number of apps across a number of verticals - 3GS usage really is a vanishingly low number, well below 1%.
Devs don't have anything against old phones, we don't care how often you give Apple your money. If enough people still used the 3GS, we'd support the 3GS.
When you're in the sub-1% group, without some contract guaranteeing support, expecting support is unreasonable.