a) Pure ageism in the programming job market to begin with. Young programmers have a better chance of knowing the hot new languages, they work for less, and they're more likely to accept long hours and weekend crunches. Meanwhile, older programmers are seen as dinosaurs with out-of-date skills.
b) A skilled developer's salary tops out at, what, $150,000 in the best case, most expensive market? And let's not forget that comment Giles Bowkett quoted recently: "You're a programmer ... that makes you a tool to be used by people much smarter than yourself." We want to think we're genius intellects, but the truth is that there's some crushing-handshake jock at the other end of the table whose daughter's 16th birthday party cost more than you'll make in your career.
Conclusion: Software development is great fun, and satisfying, and I will always keep doing it as a hobby, but it is not what I want to be trying to do at 50. What do you see as the career path, short of a 100% career switch?
So here's the thing: which languages are "hot"? C and C++ are still in the TIOBE top 10, but there's Java, VB, PHP... all languages with very low barriers to entry. So we are seeing a misleading picture of the market right now. If (and admittedly this is a complete unknown) the industry shifts in favour of languages with a higher barrier to entry then the game changes radically. Without wanting to step on anyone's toes, a (good) C++ programmer can probably hold their own in any language with a little lead time to get up to speed. A VB or PHP type might never get enough of a grasp on C++ to make it as a professional.
There was another article on HN recently about how hard it is to hire parallel programmers. See where I'm going with this...?