If the goal is code reuse, then hands down I think functional is the way to go.
Byron Houwens

The reason it was rejected early on had to do with memory requirements (not a problem today), imperative programming is more natural for the masses (business needed to exponentially grow the programmer pool, it could no longer afford to be as picky as it had been in the 60s and 70s) and historically most of us came from Assembly Language the ultimate non-Functional language.

The biggest problem with Functional Programming is how it’s taught. It’s taught from a position of Mathematics (I’m looking at you Haskell). But this is beginning to change.

With Elm, a Haskell-light, the aim is to introduce an ML-based functional language to web developers. This aim requires a very different approach to the language development and the teaching materials. I’m hopeful that this will be a gateway drug into FP for most developers.

Time will tell.