><i>Stateless programs; No side effects</i><p>Which is not all it's touted up to be.<p>><i>Concurrency; Plays extremely nice with the rising multi-core technology</i><p>Nice, but not that nice. Don't expect any significant speedup for the most common kinds of programs.<p>><i>Programs are usually shorter and in some cases easier to read</i><p>For some people they are harder to read. As for shorter, Python can be pretty terse too, as can lots of other languages.<p>><i>Productivity goes up (example: Erlang)</i><p>Anecdotal. In the real world, most systems in production (including at NASA and the most critical environments) are made with imperative/oo/etc programming, which must count for something. For every WhatsApp there are 10,000 stories of such programs.<p>><i>Imperative programming is a very old paradigm (as far as I know)</i><p>Functional programming is 5+ decades old too. And parts of math are even older, but we're still keeping them...<p>><i>and possibly not suitable for the 21st century</i><p>Citation needed.
I've noticed that programmers tend to become more interested in functional programming over the duration of their careers. I think this is because, as a paradigm, FP solves problems that only experienced programmers realize they have. I'm not sure what the age distribution of working programmers is, but I bet the median is in the low 30's at this point, which is when you start being interested in FP in a real way.<p>The other side of the coin is that there is tremendous "practical momentum" in software that is collected in the mass of code written in non-FP ways. Experienced programmers are usually expected to fix the symptoms, not cure the disease. Clever people might slip in some functional ideas here and there, but you're almost always better off learning the nuts-and-bolts of integrating Lucene with your Jetty app than you are learning Clojure.
Not "taken over" but in many ways functional programming techniques have gotten big in front-end land, not only with JavaScript but also "real" functional languages like Elm or ClojureScript.
Why does this point to the Wayback archive of the page instead of the native page?<p><a href="http://stackoverflow.com/questions/2835801/why-hasnt-functional-programming-taken-over-yet/2835936" rel="nofollow">http://stackoverflow.com/questions/2835801/why-hasnt-functio...</a>
Possibly because the way we learn math, and the math that most of us learn, is taught procedurally. It's the mindset that many of us grow up with.<p>I'm not in the valley, and I can't recall ever seeing an ad for functional anything, not even Erlang. I'm sure there's some around, around here, but not enough that I'll see it when I'm casually looking.