I don't even like the idea of unions, they shouldn't be necessary and they often lead to lazy workers. Companies should just pay their workers well and treat them decently, and workers should work reasonably hard in return.
But of course all of this is a symptom of a much greater problem, which is that money has become more important than community in today's work world. It's always been that way to some extent, but bringing in interchangeable foreign workers (who work for less and don't complain, but you get what you pay for) has compounded the issue. There's very little trust and loyalty between workers and management in most places these days.