Buttons are absolutely horrible.
You're in a public toilet, you've had a few drinks and you're trying to button up your fly but can't because you're tipsy, your hands are cold, and your penis is flailing around whilst you're just trying to put it away and force that button into position.
The alternative, a zipper. You grab it, ensure no hairs are likely to get caught and pull up.
It's a clear decision.