I use both to good effect. Similar goal, but not the same in practice.
UBO is a request-level filtering system. It blocks certain requests based on a set of patterns. It's incredibly simple, incredibly fast, and surprisingly effective, since most adds and trackers are served by 3rd party sources that can be recognized. This doesn't catch everything, though, and trackers can be sent alongside the core website content. PB provides content-level filtering that can catch some things that slip by UBO.
PB does things uBO doesn't bother with, but not because uBO only has request level filtering. E.g. uBO also employs content level filtering and methods such as scriptlet injection to neuter/stub specific tracker functionality.
UBO is a request-level filtering system. It blocks certain requests based on a set of patterns. It's incredibly simple, incredibly fast, and surprisingly effective, since most adds and trackers are served by 3rd party sources that can be recognized. This doesn't catch everything, though, and trackers can be sent alongside the core website content. PB provides content-level filtering that can catch some things that slip by UBO.