Functional programming, in which code is normally written without using side effects, is supposed to be more advanced than object-oriented programming. It requires a higher IQ.
While I have never successfully understood what a monad is other than that it abstracts out side effects, I have read, or tried to read, a reasonable amount of Haskell code and read a fair amount of Lisp and OCaml code, and I write JavaScript code in a functional style all the time.
Here is my take: writing in an object-oriented language in a functional style (functional array methods) with a functional-reactive view framework for UIs provides all of the benefits of a functional language while still allowing mutable state for problems when it is necessary.
Some problem domains are inherently stateful. I believe any language that does not have a top-level class construct with multiple inheritance and mutable state is most likely not fully suitable for practical purposes. Most pure functional code is probably boilerplate around data processing that can be expressed more efficiently by calling an industrial-strength Python object-relational mapper like SQLAlchemy. Databases are inherently stateful, and an object-oriented ORM with an instance cache is the most natural way of interacting with them.
In addition, monads are probably only useful for IO, where it is perfectly adequate to just use a reader and writer object.