Object-Oriented Programming vs. Functional Programming

You may have heard about programming paradigms. At this time, the most heated debate is functional vs. object-oriented.

Best is a combination of the two, even within the same project. Use OO to drive the general architecture, but FP as the main approach for individual components. But put FP behind OO abstractions.

FP is simply great for some kind of problems.

What kind of problems? The mathy ones, the complex ones. I would not use FP for components where polymorphism brings way more value.

The types of components I usually write lend themselves most often to OO, but in the rare cases when FP is more appropriate, it's components with a bigger impact and I don't shy away from using FP then.

Still, FP remains an implementation detail of that component, hidden behind OO abstractions.

I found that this is the most adult way of dealing with the question OO vs FP.