I have this idea that the dichotomy between functional & imperative (OOP?) programming is the "same as" the dichotomy in mathematics between algebra and geometry. Some more discussion of this here [1].
[1] https://www.quora.com/Why-is-functional-programming-seen-as-...