They're not mutually exclusive, but they tend to push program design in different directions. There's tension when you try to make a whole program OO and functional, but you can make pockets of OO when it really is the best approach, and give them a functional interface,