Hay toneladas de argumentos "teóricos" sobre por qué la programación funcional es una buena idea (demasiados para que haya quedado como una pregunta abierta, y correctamente).
Sin embargo, la mayoría de ellos son argumentos elaborados desde la teoría ("elegancia", etc.) o dirigidos a los desarrolladores.
El problema es que la mayoría de ellos son completamente inútiles cuando el objetivo es presentar la idea a la alta gerencia de una gran empresa , algunos de los cuales ni siquiera son desarrolladores, y todos se preocupan principalmente por los argumentos comerciales : costos, gestión del capital humano , entrega de productos, servicio al cliente e ingresos; así como hechos cuantitativos sobre puntos teóricos que no pueden respaldarse con hechos.
¿Hay algún argumento convincente para presentar para abordar esas preocupaciones comerciales en cuanto a considerar la adopción de la programación funcional como un concepto (no un lenguaje específico), frente a la combinación típica de procedimientos / OOP, por ejemplo, Java / C ++ / (Perl | Python) .
Preferiblemente, estoy buscando argumentos cuantitativos y / o basados en investigaciones o estudios de casos. Por ejemplo, "de acuerdo con esta referencia, la tasa de errores de los sistemas multiproceso en Lisp / F # es 10% superior a la de Java" u "80% de los mejores graduados que expresan preferencias de la tecnología deseada denominada programación funcional como uno de los 3 principales intereses".
Sé que Graham presentó casos de uso de programación funcional para un estancamiento y estaría abierto a algunos de sus argumentos, suponiendo que puedan ser válidos para una empresa establecida más grande.
ps Estoy perfectamente consciente de que puedes hacer algo parecido a la programación funcional en Perl, probablemente Python y (posiblemente) incluso Java 8 o C ++ 14. Pero eso no significa que una organización que usa Perl, C ++ o Java apruebe funcional vs OOP / enfoques procesales incluso en esos idiomas
Para los propósitos de este lenguaje, "grande" se define como lo suficientemente grande como para tener un grupo dedicado de ingeniería / herramientas de desarrollo, que dicta lo que todos los desarrolladores pueden usar / hacer; y al menos cientos de desarrolladores de gama baja .