If you are a free market capitalist you can refuse to train them too. Let your boss do it. If he can't he can hire you as a consultant at a pretty penny to do it. THEN you can call the shots of your own success -- and others as well if you're as good as you think you are.
Are you greedy because you shop for a good deal? Neither are these companies who found a more competitive wage to get their job done.
You can't come to grips with the fact that these programmers' jobs aren't worth what they used to be. Buggy whip manufacturers faced the same thing when cars were invented or earlier when steam engines were invented.
We called them Luddites back then. Today we call them envionmentalists.
Don't assume things with leaps of logic and tell me what I can and can't come to grips with, because you're wrong. I know that techs (including self-employed types like me) made way too much, and there is nothing wrong with "shopping for a good deal" as you say.
My thing is "do unto others". I would never have an employee train another person then fire him and have that other person take his place. That's wrong.
If the employer discloses that he is palnning on using him and is going to fire him afterwards that's one thing, somehow I don't see that as what's happening.
Also, if these businesses want to find the market for paying techs, I have no problem with that. I do have a problem with them being allowed to manipulate our immigration laws to do so. That's wrong.
It didn't happen overnight, did it?