Look. I work in a major US tech company and am involved with hiring from a technical level, and I can tell you first hand that the quantity of quality people in North America IS lacking. Out of all of the employees you hire, maybe 1 of the 10 is the rockstar you need for your project... the rest are OK, sure, but when you are working under tight timelines and need creative solutions on a global stage, you don't need a bunch of churned-out code monkeys, you NEED those rock stars.
This is NOT about cheap labor. Do you think it is cheap to pay a lawyer to handle the visa process (about 10K minimum), to handle the annual renewal (about 5K minimum), to pay global relocation expenses (another 10K)? On top of this, the wages and benefits we're talking about here in Silicon Valley are some of the highest in the country. We're not bringing people over from India and paying them 40K / year to work on Facebook - it is just not happening, it is a myth.
There are two problems we have here
- We are not getting enough kids into STEM at an early age. Only kids who are really into STEM in middle and high school are the ones who go onto be the rock stars this country needs to compete. Someone who goes to university just to get a job in CS that pays well on graduation, and does not have a PASSION for technology, is not going to be this rock star.
- The US, like most countries in the OECD, has a declining birth rate. The US is one of the only remaining countries in the first world that still has replacement population birth levels, but very soon (maybe end of 2014), it won't anymore. Combine declining birth rates with accelerating boomers retiring and you have a very poor economic picture. WE NEED more skilled immigrants just to maintain the economy. Otherwise, you are going to have a very very scary picture developing in the next couple of decades.