Having gone all the way and back, I will say this: Undogmatic imperative programming (with objects) is superior to pure functional programming. You can still use functional constructs and immutable data where it makes sense. You never want to shoehorn a problem into a niche programming paradigm.
I have come to realize this is why I love Go. Lots of the big libraries over complicate things at times but for my own simple toys I love writing down my types and planning my data containers and then just writing small functions to interact with them.
I have started writing (type annotated) python this way and it has made it a joy to work with again. I watch coworkers add so much state and complexity turning every small problem in to a bigger problem with object oriented patterns.
Setting aside why I disagree with this superiority claim, since this is posted under a "Clojure" comment, I just wanted to point out that Clojure is not a pure functional language and you can still use imperative programming. In fact, most Clojure programs are a mix of imperative and functional constructs.