Últimamente he notado que los lenguajes de programación funcionales están ganando popularidad . Recientemente vi cómo el Índice Tiobe muestra un aumento en su popularidad en comparación con el año pasado, aunque la mayoría de ellos ni siquiera llegan a los 50 idiomas más populares según este índice.
Y este ha sido el caso durante bastante tiempo. La programación funcional simplemente no se ha vuelto tan popular como otros modelos (es decir, programación orientada a objetos).
Sin embargo, he visto un interés renacido en el poder de la programación funcional, y ahora que los multinúcleos son cada vez más populares, los desarrolladores han comenzado a mostrar interés en otros modelos de concurrencia ya explorados en el pasado por lenguajes como Haskell y Erlang.
Veo con gran interés el hecho de que, a pesar de su falta de aceptación significativa por parte de la comunidad, siguen surgiendo más y más idiomas de este tipo. Clojure (2007), Scala (2003), F # (2002) son solo tres ejemplos de la última década.
Yo mismo he invertido algo de tiempo aprendiendo Haskell y Scala. Y encuentro un gran potencial en el paradigma que para mí era nuevo a pesar de estar ahí por tanto tiempo.
Y, por supuesto, mi mayor pregunta es si alguno de estos se volverá lo suficientemente popular como para considerar poner algún esfuerzo en ellos, pero esta es una pregunta que ni siquiera Mandrake podría responder, a pesar de todo el alboroto que la gente está haciendo sobre ellos.
Lo que sí quiero preguntar es:
- ¿En qué escenarios debería considerar un lenguaje de programación funcional más adecuado para realizar una tarea determinada? Además del problema multinúcleo tan popular de la programación paralela.
- Si decidiera cambiar a un lenguaje de programación funcional, ¿cuál consideraría que son los mayores escollos que enfrentaría? (Además del cambio de paradigma y la dificultad de evaluar el rendimiento debido a la evaluación perezosa).
- Con tantos lenguajes de programación funcionales, ¿cómo elegiría el que mejor se adapte a sus necesidades?
Cualquier recomendación para futuras investigaciones será más que bienvenida.
He buscado opiniones en la web, y parece que toda esta popularidad renovada proviene de la idea de que ahora estamos a punto de llegar al muro de la Ley de Moore y que vendrán lenguajes de programación funcionales y nos salvarán heroicamente. Pero si este es el caso, diría que hay más probabilidades de que los lenguajes populares existentes se adapten al paradigma.
Algunos de ustedes, con más experiencia trabajando todos los días con estos idiomas tal vez, pueden ofrecer más información sobre el tema. Todas sus opiniones serán mejor apreciadas y consideradas cuidadosamente.
¡Gracias por adelantado!