I think you underestimate the amount of money that Bay Area developers make. $2k/month is $24K/year, which is a relatively small fraction of your after-tax income when you're making $150K/year.
One thing people don't take into account when figuring out cost-of-living adjustments: while expenses like rent, taxes, and meals out are typically a percentage of income, expenses like durable consumer goods and savings are measured in absolute dollars, and are fungible between locations. So while it sucks that cost-of-living might still eat up 80% of your income, the remaining 20% is a measly $8k/year at a $40K/year middle-America programmer job, but $30K/year at a $150K/year Bay Area tech job.
And the difference gets even more stark with added income - if you make $300K/year (quite doable as a senior engineer at a major tech company in the Bay Area), your taxes go up, but every other expense category remains the same, and so you end up banking about $100K/year. It's not unreasonable for a programmer in the Bay Area to save up half a million over a 4-5 year stint at a company; ask someone in Kansas or Ohio how long they think they'll have to work to save up half a million.
Fresh-out-of-school salaries at Google/Facebook/Twitter are in the low six figures (2 years ago I think they were around $105K), get promoted to senior dev after 2-3 years and $150K/year is very doable. It's probably lower at J-random-startup that nobody has ever heard of, but most VC-funded startups will pay market rates.
We are comparing to acting hopefuls. Is the crem-de-la-crem of the programming world- the ones that get top salaries at Google/Facebook/Twitter- really the right people to compare?
300K for a senior engineer? Maybe a few people at Google. I've heard of some 200K jobs at Apple for low level systems programming people that are hard to find.
One thing people don't take into account when figuring out cost-of-living adjustments: while expenses like rent, taxes, and meals out are typically a percentage of income, expenses like durable consumer goods and savings are measured in absolute dollars, and are fungible between locations. So while it sucks that cost-of-living might still eat up 80% of your income, the remaining 20% is a measly $8k/year at a $40K/year middle-America programmer job, but $30K/year at a $150K/year Bay Area tech job.
And the difference gets even more stark with added income - if you make $300K/year (quite doable as a senior engineer at a major tech company in the Bay Area), your taxes go up, but every other expense category remains the same, and so you end up banking about $100K/year. It's not unreasonable for a programmer in the Bay Area to save up half a million over a 4-5 year stint at a company; ask someone in Kansas or Ohio how long they think they'll have to work to save up half a million.