I work for as a subcontractor for the Department of Defense in a division that handles all pay and personnel applications for one branch of the military. We're in the middle of a major expansion and cannot find the software developers we need to do the work in the time frame that the Pentagon would like. Why? Because as a part of the DOD all employees and subcontractors have to qualify for a security clearance. The H-1B movement has pretty much destroyed the U.S. born programmer base, and getting a clearance for an H-1B is damned near impossible. So we either lower our security standards or don't get the work done. Either way wouldn't you say that the U.S. is hurt? But which solution would you prefer?
I don't think its true that H-1B visas have 'shrunk the American market in software programers'. In fact, your comments seems to strenghten my position even more. For our national security we need the best programmers in the world coming here. (not our companies going there - outsourcing etc..)
Yes, give them security clearences in the most careful way possible.