If there is a genuine shortage in any industry it's easy to tell: it's reflected in salary, signing/retention bonuses, people getting away with acting like rockstars, etc.
If there is a lot of whining about a shortage but that isn't showing up in cold hard cash then all we have is a management class trying to drive down the wages of the workers.
I'm not sure that will help at all, since the only mechanism the government has to evaluate a programmer is whether or not they already have a job with a local company, and if they do then the company will sort their visa anyway.
To be truly meritocratic, we'd need a means to not only allow but attract engineers (of all sorts) based on talent. At the moment a mediocre engineer from a country that has historical ties with us will find it easier to immigrate than an excellent engineer from a country that doesn't. Which seems a bit counterproductive to me.
If there is a lot of whining about a shortage but that isn't showing up in cold hard cash then all we have is a management class trying to drive down the wages of the workers.