Our quarterback is in his second year. He definitely has a wallop in his arm, but last year proved he needed to learn the basics (stance, when to throw, when to run, when to ground it, kind of things.) To teach him this, during practice, if he doesn't do the right form, he's fined.
He makes BIG bucks. BIG bucks.
So, I'm thinking, what's the better way to teach me something -- take a dollar off me every time I don't do something right while paying me such big bucks that a buck here or there wouldn't bother me, or give me physical punishment? I'd have more time to think about it with physical punishment. No need to think about it with financial punishment.
Hubby used to explain to his daughter what she did wrong, then ask her what punishment she thought she deserved. (The rules were already set.) She gave the honest answer and asked for the paddle.
The paddle was hard wood with lots of holes in it, so it would sound loud when it hit, but wouldn't hurt. (He tested it. lol) Part of her punishment was to go get the paddle.
Her behavior improves greatly within 2 weeks to a month. Apparently, she chose to avoid the paddle.
So... basically it depends on the person and situation.