By the way, the reason for using either is effectively the same: it's to guarantee that the pin is in a known state when the button isn't pressed.
Let's say the button takes the pin to ground. You might therefore assume that the pin is high the rest of the time. But you don't know that for a fact. So one time when you read the pin without pressing the button, the pin might happen to be low anyway: you would then think the button was pressed and act accordingly. But it wasn't.... So the pullup guarantees that the pin is high when it's not deliberately low.
Similarly a pulldown guarantees it's low, if you prefer it that way.
But pullups and active low, are best practice.