I don't want to regulate compensation. If you're good enough that people will pay $500 per hour for your services, that's great. Nor do I want the seniority-driven culture of traditional labor unions that leads to mediocrity. What I want is a system that allows programmers to bargain collectively for their interests. Not one that regulates compensation, protects truly bad employees, or imposes seniority policies that lead to entrenched mediocrity. We should have a formal structure that allows us to look out for our interests without the risks of going alone.
Let's say you're given an offer letter, but it has a binding arbitration clause (meaning that you can't sue). Arbitration is rigged against employees, because the company pays the arbitrator, and it never sees daylight, so the company doesn't fear the PR risks of discovery. This means you can't expect a severance. Ok, you say, I'm not planning on getting fired. Well, no shit; who is? But it also means the company can treat people poorly because the cost (to it) of a morale problem is lower; it can fire without considering severance costs. That affects you, even if you're a high performer. Without binding arbitration, an underperformer costs then 3 months of severance or a morale-killing "PIP", so they have an incentive to keep you from getting bored. Or, you might just get unlucky and get fired over something not your fault, but with binding arbitration, you're fucked. It's unfair, ridiculous, and wrong. However, if you push on this issue (i.e. fighting over a term that, while ludicrous, only matters if you're fired or leave on very bad terms) management will see you as either a troublemaker or someone likely to underperform.
One company asked me to sign a waiver legally releasing them, and all parties called, over results of a reference check, including back-channel references (i.e. references I didn't provide). That's a ridiculous concession. A competent union or professional organization would nuke that from orbit. But as an individual, pushing back against it made it sound like I had something to hide, and while it didn't cost me the offer, I was told that my negotiation of that term "was discussed" as a possible red flag. (I ended up declining their offer. Shitty legal processes are a red flag for me.) I shouldn't have to go out individually (and be a "troublemaker") to get onerous terms like that stricken.
A union is basically an insurance policy. You pay your dues so that, if you're ever unfairly treated at work and need someone to get your back, you have that. This keeps management honest and is generally to the benefit of both sides.