I think an issue lost in the discussion is that citizens are losing jobs because of this. I'm all for the plight of the immigrant, but as an American, my concern is first and foremost with my fellow countrymen.
Why would Americans lose jobs over this? I can understand the "immigrant tech workers are the reason we don't have higher salaries" argument, but not why somebody would actually lose their job over this (since salaries have to be the same, and if you accept that salary you would cost less to the company since you don't require paperwork, lawyers, relocation)
Hiring H1B visa holders creates jobs in america. The product created by the one I hired employed 20 people in high paying jobs. There are multiple billion dollar companies in SV employing thousands of americans founded by H1B holders. Do we want those companies to have been built in India?
You really think there is not enough jobs for American software developers?
If you are a decent software developer there is a guaranteed job for you, unless you code in COBOL or FORTRAN. Heck, people are jumping ships and we hire people from English or Humanities background who go and do 6 months intensive coding boot camps. Wake up and go find opportunities for yourself. Jobs don't come to you. Get yourself out there and be known. Put your hobby projects on Github. Attend Meetups and network with people. People hire a lot at tech meetups.
I thought that COBOL devs have guaranteed jobs, given the startlingly number of legacy systems out there that urgently need people to maintain them and prevent our nation's aged banking databases from collapsing.