Das Problem mit der funktionalen Programmierung ist nicht die funktionale Programmierung selbst - es sind die meisten Leute, die dies tun und (noch schlimmer) die meisten Leute, die Sprachen entwerfen, in denen dies getan werden soll.
Das Problem ergibt sich aus der Tatsache, dass viel zu viele der Leute, obwohl sie sehr schlau (manchmal geradezu brillant) sind, ein wenig zu fanatisch in Bezug auf Reinheit, Perfektion und die Durchsetzung ihrer eigenen (oftmals ziemlich engen) Sicht auf die Welt und das Programmieren auf die Welt sind Sprache und jeder, der sie benutzt.
Eines der Ergebnisse ist das Scheitern von Kompromissen. Dies führt (unter anderem) zu ungefähr 10.000 Sprachen und Dialekten, die unterschiedlich genug sind, um zu nerven, aber nur selten genug, um einen wirklich signifikanten Vorteil gegenüber den anderen zu haben. Viele schauen sich auch die reale Welt an und stellen fest, dass sie einfach falsch ist und am besten ignoriert wird, da sie nicht sehr gut zum Funktionsmodell passt.
Die Unfähigkeit, Kompromisse einzugehen, hat auch zu einigen Sprachen geführt, die für eine bestimmte Art von Problem (oder für einige bestimmte Arten von Problemen) absolut schön sind, aber für viele andere wirklich zum Kotzen sind . Ein Teil davon ist wahrscheinlich auf das Funktionsmodell selbst zurückzuführen, aber viel mehr scheint (zumindest für mich) auf den grundlegenden Persönlichkeitstyp zurückzuführen zu sein, der von Anfang an von diesem Bereich angezogen wird.
Das führt zu einer Reihe von Problemen. Erstens ist das Erlernen der "funktionalen Programmierung" meistens von philosophischem Wert. Bei den meisten anderen Arten von Sprachen ist die Kenntnis einer Sprache eines bestimmten Genres eine wichtige Hilfe beim Erlernen einer anderen. Wenn mein Projekt die Sprache X verwendet, kann ich normalerweise jemanden einstellen, der die Sprache Y (aber nicht X) ziemlich sicher beherrscht. Bei funktionalen Sprachen ist das viel weniger der Fall. Sie kennen Erlang vielleicht recht gut, finden aber Haskell-Monaden völlig fremd und unverständlich.
Wenn Sie die Anzahl der Sprachen mit der eingeschränkten Portabilität der Talente kombinieren, entsteht eine hässliche Situation: Es ist fast unmöglich, dass eine Sprache oder ein Dialekt die "kritische Masse" bildet, die erforderlich ist, um einen angemessenen allgemeinen Gebrauch daraus zu machen. Das ist langsam zu ändern, aber es ist immer noch eine Menge , wie Linux das dominierende Desktop - Betriebssystem immer - jedes Jahr Menschen mit überzeugenden Argumenten kommen, die schließlich das sein wird, das Jahr - und ebenso wie die Menschen , die die Vorhersage haben , dass jeder Jahr für Jahrzehnte werden sie wieder falsch liegen. Das soll nicht heißen, dass es (beides) niemals passieren kann - nur, dass die Leute, die sich die Vorhersagen ansehen und "nein, nicht in diesem Jahr" denken, die waren, die bisher Recht hatten.