Últimamente he notado que los lenguajes de programación funcionales están ganando popularidad . Recientemente me di cuenta de que el Índice Tiobe aumenta 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 renovado interés 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.
Observo con gran interés el hecho de que, a pesar de su falta de aceptación por parte de la comunidad, siguen surgiendo cada vez más idiomas de este tipo. Clojure (2007), Scala (2003), F # (2002) son solo tres ejemplos de la última década reciente.
Yo mismo he estado invirtiendo un tiempo aprendiendo Haskell y Scala. Y encuentro un gran potencial en el paradigma que para mí era totalmente nuevo a pesar de haber estado allí tanto tiempo.
Y, por supuesto, mi pregunta más importante es si alguno de estos realmente se volverá lo suficientemente popular como para considerar ponerle un esfuerzo, pero esta es una pregunta que ni siquiera Mandrake podría responder, a pesar de todo el alboroto que la gente tiene. haciendo acerca de ellos.
Lo que sí quiero preguntar es:
- ¿En qué situaciones debería considerar un lenguaje de programación funcional más adecuado para realizar una tarea determinada? Además del recientemente popular problema multinúcleo de la programación paralela.
- Si decidiera cambiar a un lenguaje de programación funcional, ¿cuáles consideras son los mayores escollos que enfrentaré? (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 adapta 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 renovada popularidad proviene de la idea que ahora estaba a punto de chocar contra el muro de La Ley de Moore y los lenguajes de programación funcionales vendrán 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 cada día con estos idiomas, quizás puedan ofrecer más información sobre el tema. Todas sus opiniones serán mejor apreciadas y consideradas cuidadosamente.
Gracias de antemano!