Il y a des tonnes d'arguments «théoriques» pour expliquer pourquoi la programmation fonctionnelle est une bonne idée (trop pour que cela soit resté une question ouverte, et correctement).
Cependant, la plupart d'entre eux sont des arguments soit issus de la théorie ("élégance", etc ...), soit destinés aux développeurs.
Le problème est que la plupart d'entre eux sont totalement inutiles lorsque l'on a pour objectif de présenter l'idée à la direction d'une grande entreprise , dont certains ne sont même pas développeurs, et qui se soucient tous principalement d'arguments commerciaux : coût, gestion du capital humain , livraison de produits, service à la clientèle et revenus; ainsi que des faits quantitatifs sur des points théoriques qui ne peuvent tout à fait être étayés par des faits.
Y a-t-il des arguments convaincants à présenter pour répondre à ces préoccupations commerciales en ce qui concerne l'adoption de la programmation fonctionnelle en tant que concept (pas de langage spécifique), par rapport à la combinaison typique de procédures / POO, par exemple Java / C ++ / (Perl | Python) .
De préférence, je recherche des arguments quantitatifs et / ou basés sur des recherches ou des études de cas. Par exemple "selon cette référence, le taux de bogues des systèmes multithread en Lisp / F # est de 10% celui de Java" ou "80% des meilleurs diplômés exprimant les préférences de la technologie souhaitée nommée programmation fonctionnelle comme étant parmi les 3 principaux intérêts".
Je sais que Graham a présenté des cas d'utilisation de programmation fonctionnelle pour une starup et serait ouvert à certains de ses arguments en supposant qu'ils peuvent être valables pour une grande entreprise établie.
Je suis parfaitement conscient que vous pouvez faire quelque chose de proche de la programmation fonctionnelle en Perl, probablement Python, et (peut-être) même Java 8 ou C ++ 14. Mais cela ne signifie pas qu'une organisation utilisant Perl, C ++ ou Java approuverait la fonction vs POO / approches procédurales même dans ces langues
Pour les besoins de ce langage, "large" est défini comme suffisamment grand pour avoir un groupe dédié d'ingénierie / outils de développement, qui dicte ce que tous les développeurs sont autorisés à utiliser / faire; et au moins des centaines de développeurs bas de gamme .