Le problème avec la programmation fonctionnelle n'est pas la programmation fonctionnelle elle-même - c'est la plupart des gens qui le font et (pire) la plupart des gens qui conçoivent des langages dans lesquels le faire.
Le problème vient du fait que, même s'ils sont très intelligents (parfois carrément brillants), beaucoup trop de gens sont juste un peu trop fanatiques de la pureté, de la perfection et appliquent leur propre vision (souvent assez étroite) du monde et de la programmation sur le monde. la langue et tous ceux qui l'utilisent.
L'un des résultats est un échec de compromis. Cela conduit (entre autres) à environ 10 000 langues et dialectes suffisamment différents pour déranger, mais rarement assez différents pour que l'un ait un avantage vraiment significatif sur les autres. Beaucoup regardent également le monde réel et décident que comme il ne correspond pas très bien au modèle fonctionnel, il est fondamentalement faux et mieux ignoré.
L'incapacité à faire des compromis a également conduit à un certain nombre de langues qui sont absolument magnifiques pour un type de problème spécifique (ou quelques types de problèmes spécifiques) mais qui sont vraiment nulles pour beaucoup d'autres. Une partie de cela est probablement causée par le modèle fonctionnel lui-même, mais beaucoup plus semble (au moins pour moi) être causé par le type de personnalité de base qui est attiré par ce domaine au départ.
Cela entraîne un certain nombre de problèmes. Tout d'abord, l'apprentissage de la "programmation fonctionnelle" a surtout une valeur philosophique. Avec la plupart des autres types de langues, la connaissance d'une langue d'un genre particulier est d'une grande aide pour en apprendre une autre. Si mon projet utilise la langue XI, je peux généralement embaucher quelqu'un qui connaît la langue Y (mais pas X) en toute sécurité. Avec les langages fonctionnels, c'est beaucoup moins vrai. Vous connaissez peut-être assez bien Erlang, mais vous trouvez toujours des monades Haskell complètement étrangères et incompréhensibles.
Combinez le nombre de langues avec la portabilité limitée des talents entre elles, et vous obtenez une situation laide: il est presque impossible pour une langue ou un dialecte de former la "masse critique" nécessaire pour en faire un usage raisonnablement général. Cela change lentement, mais cela ressemble toujours beaucoup à ce que Linux devienne le système d'exploitation de bureau dominant - chaque année, les gens arrivent avec des arguments convaincants que finalement ce sera l' année - et tout comme les gens qui ont prédit que chaque année depuis des décennies maintenant, ils auront encore tort. Cela ne veut pas dire que cela (l'un ou l'autre) ne peut jamais arriver - juste que les personnes qui regardent les prédictions et pensent "non, pas cette année" ont été celles qui avaient raison jusqu'à présent.