I also agree with a many Americans who are anti-H1b that it suppresses wages, hence makes it attractive to higher foreign workers, quite often for jobs that are not truly state of the art, but do require the technical know how.
This is why it makes sense for the H1-B to be a highest paid gets first kind of a visa. That way there's a strong incentive to not hire lowest paid employees.
In fact, I think a better way would be to give two 3-year temporary green cards. if at the end of 6th year if the person still has job, it becomes a permanent job. This removes any control that an employer has to depress the wages, and be fair to the American as well as immigrant labour. Such a system can be made available to at least the undergrad/grad/doctoral degree holders from the US universities.
By limiting the immigrant talent, US has already ensure China is taking a huge leap in terms of tech advances. India will figure out how to make the leap soon.
All the while, Canada is making the most of USA's anti high skilled immigrant situation, but inviting them in droves. We'll see a different Canada in the next 5-10 years, mainly due to the huge number of tech immigrants (of Chinese or Indian origin) moving to Canada.