I've been working in technology for nearly 2 decades and tell you there is NO shortage of top coders, engineers or scientists in the U.S. Actually, there is a glut, especially among more experienced engineers/scientists. However, MBA-run companies like HP or IBM want to purchase "talent" for as little money as possible, and so they use the H1B Visa program to increase the supply of lower cost labor and have sent millions of engineering and science jobs to India and China in order to procure people willing to work for less. You can't compete with the Chinese on salary because the yuan is kept artificially low and the Chinese state actually subsidizes American businesses out of their own pocket.
You do realize how the H1B program works right? Let me quote something from Wikipedia for you:
Wiki said:The U.S. Department of Labor (DOL) is responsible for ensuring that foreign workers do not displace or adversely affect wages or working conditions of US workers. For every H-1B petition filed with the USCIS, there must be included a Labor Condition Application (LCA) certified by the U.S. Department of Labor. The LCA is designed to ensure that the wage offered to the non-immigrant worker meets or exceeds the "prevailing wage" in the area of employment. The LCA also contains an attestation section designed to prevent the program from being used to import foreign workers for the purpose of breaking a strike, or for the purpose of replacing US citizen workers.
If the program is being abused it is due to a poor implementation of the regulation in place. But hey, we need less regulation and less government interference right? That's the ticket to protecting the US work force! Yeah right...