You obviously have not been involved in O visa process otherwise you'd known that the qualifications for O visa are chiefly publications (other qualifications would be academic awards, involvement with awarding those awards and such). So any PhD can get one while a programmer who is not into writing books and articles for peer reviewed journals has no chance.
H1B already has salary floor and protections against body shops built in. The problem is with enforcement: most recipients of H1Bs are working for "consulting" companies (Tata, IBM, Wipro, L&T, Cognizant etc) and one can safely guess that these people are going to be contracted out, something that you should not be able to do on H1B. However the USCIS ignores this and keeps stamping these visas.
The desire for tech companies to underpay the very people who make this industry possible simply does not represent a crisis for me. The non-poaching arrangements between major tech giants demonstrates their desire to hold down engineering compensation.
If bringing the best sw engineers to America is truly a priority, and I would say that it should be, then that problem should be solved as it has been for scholars. The argument that the H1-B program is that solution is disingenuous at best.
> If bringing the best sw engineers to America is truly a priority, and I would say that it should be, then that problem should be solved as it has been for scholars.
The problem with programmers is that there is no objective criteria for what is "best". There is hardly one for scholars. Scholar criteria are objective but they do not select the best, it's assumed that you would not want to bring sub-par scholars yourself. It's same with other skilled professions - you can only verify they have skills objectively, it's impossible to verify they are the best. So I am not making argument that H1B is bringing only the best and nobody else.
However I don't see a practical way to bring the best without getting also a bunch of fake resume "consultants". Personally I don't care much - "consultants" cannot do my job so they are not competing with me. I am just a bit annoyed with the people who barely can open a text editor and copy/paste code calling themselves "sw engineers".