Why Isn't Functional Programming the Norm? [video]
youtube.com
youtube.com
Here's what I think: The dichotomy exposed in essays like https://blog.codinghorror.com/separating-programming-sheep-f... and The Camel has Two Humps: http://eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf, is real. I see it every day.
I think there is another dichotomy. Many people who can code, can think the way needed to write software (not just fumbling and guessing), and can understand a structural and procedural way of thinking. But a large proportion just cannot understand functional programming. "Poof!". I don't think it's education. I think it's a lack of a particular and obscure innate mathematical ability. And I don't think it's a defect either.
Peoples brains are wired different. Visual vs. verbal. Well FP, certain types of math (say number theory), temporal thinking (threads, race conditions, liveness proofs), are very different kinds of thinking than the basic "recipe-like" procedural coding.
So FP isn't the norm because out of 100 people, perhaps 5 can program. Out of that 5, perhaps 1 really "gets" FP. Maybe one more can force it and get it done.
My experience is watching co-workers try to maintain and manage a simple tool written in a functional language. It made perfect sense to me, but it was a disaster. Folks, some things that are easy-ish for you are just not easy for others. It's not "smart" vs "not-smart". Understand, not everyone is wired up the same way.
And the ability to really get FP is one of those things that is neither easy nor common.