We use constraints a whooooooole lot in rigging, don't we?
They're a no nonsense catch-all solution for when you just want an object to follow another object. Don't care about its hierarchy or none of that, I just want it to follow! Why all these questions? I just want life to be simple!
Well fine. But need I remind you, we are riggers. "Simple" was never in our future.
You may have heard people online saying "Ew! Constraints! Don't use constraints! Constraints are terrible!" So let me fill you in on what they're talking about.
Look at your average constraint in the node editor:
That's an awful not of connections. And that's just a vanilla constraint - once you start messing around with multiple targets, the number of connections increases. Constraints are a nuclear solution to a surgical problem. They take in all kinds of information from the driver object(s) and driven object to make sure that there are a very few curve balls one can throw at it. Every single connection in a network adds a little extra to a rig's evaluation time (how quickly Maya runs and responds when the animator is using the rig). So it's because of all these connections that people say constraints are "slow" or "heavy.

