Estoy colocando mi apuesta en FP continuando su impulso. FP ha existido durante muchos años, con una adaptación lenta hasta hace unos años. Estamos en un momento de transición que creo que continuará hasta que la industria aprenda más sobre la programación funcional.
En algún momento, las personas aprenderán a reconocer el ruido de Internet de aquellos que expresan sus opiniones por ignorancia obvia. Leí tanta basura y falsedades sobre lo que FP puede y no puede hacer. Por ejemplo:
- FP no se puede usar para control de bajo nivel. He escrito software embebido de un Beaglebone Black en un lenguaje funcional, con máquinas de estado complejas, requisitos de tiempo casi en tiempo real y control de hardware
- FP requiere matemáticas de alto nivel. Lo siento, no tengo una licenciatura en matemáticas y nunca he estudiado cálculo lambda. Tampoco puedo reducir una expresión lambda compleja. Pude recoger la programación funcional rápidamente, 25 años con programación imperativa.
- FP es para puristas que tomarán el camino por encima de preocupaciones pragmáticas como el rendimiento y la complejidad. De nuevo, no es cierto. Claro, hay algunos fanáticos en la comunidad FP. ¿Esto significa que no hay ninguno en otras comunidades de programación? Cualquier programador respetable también tomará decisiones para resolver mejor los problemas que se les asignan.
No estoy seguro de cómo se convertirá el FP convencional, pero estoy bastante seguro de que si se convierte en mainstream, no será con lenguajes de paradigmas múltiples. Sí, ahora son populares, lo que cabría esperar durante un período de transición. Después de todo, todos queremos mitigar el riesgo y el paradigma múltiple es una solución perfecta.
- ¿Cuáles son los atributos de una buena prueba de software?
- ¿Qué tan satisfactorio es trabajar en una gran empresa de software?
- ¿Cuáles son las ventajas del desarrollo de software offshore en Bielorrusia?
- ¿Qué haces cuando no puedes evitar pensar que el desarrollo es aburrido?
- ¿Cuáles son los consejos para unirse a un nuevo equipo como ingeniero de software?
El problema con los lenguajes de paradigmas múltiples es que es una solución que utiliza compromisos en un intento de hacer felices a todos. El problema con el compromiso es que es una solución para perder. Utilizo FP porque me proporciona las abstracciones y el soporte para producir efectivamente un software concurrente altamente confiable que es más fácil de escribir, probar, leer y mantener que todos los lenguajes que no son FP que he usado en el pasado. El habilitador principal para esto es la separación de estado, comportamiento y tiempo. Algo que no sé que alcanzaría en un lenguaje de paradigma mixto.
Estoy de acuerdo en que todo lo que puede hacer con FP se puede lograr con lenguajes de procedimiento y OO, incluidos sistemas altamente concurrentes. Pero, de nuevo, todo lo que resuelvo con OO, lo puedo resolver con un lenguaje de procedimiento y todo lo que puedo hacer con un lenguaje de procedimiento, lo puedo hacer con lenguaje ensamblador. Pero a qué costo en desarrollo, costo y complejidad.
Los lenguajes y paradigmas de programación nunca mueren realmente, simplemente se desvanecen silenciosamente en segundo plano. No se trata de que FP se haga cargo, sino de que se convierta en una opción convencional. A medida que más personas experimenten los beneficios de la PF, creo que la adopción aumentará.