Leovinci Consulting

Detalles de la Noticia

El resurgir de la programación funcional

Aunque nunca hayas trabajado con ella, seguro que has oído hablar de la programación funcional. Y cada día más, ya que parece que hay un hype con ella. Este paradigma de programación, que parecía haber sido olvidado por la gran masa de desarrolladores, lleva unos cuantos años resurgiendo.

Es cierto que han sido otros lenguajes imperativos, en especial los imperativos y orientados objetos, los que se han llevado la fama de ser más productivos y eficaces para un mayor número de tareas. Pero no todo el mundo piensa igual. Últimamente ha aparecido una corriente crítica, argumentando que la mayoría de las ventajas que este tipo de lenguajes proponen, quizá no sean tan definitivas. Si bien la POO siempre ha prometido modelar el mundo real y proporcionar código reutilizable, cuando adquirimos algo de experiencia nos damos cuenta que eso no es nada sencillo.

Así que no ha tardado en aparecer gente que piensa que es más fácil programar con un enfoque funcional, afirmando incluso, que se es mucho más productivo y que se reduce el número de bugs y errores.

Si los lenguajes funcionales son la solución a todos nuestros problemas (seguramente no), es algo que el tiempo dirá, pero mientras tanto podemos analizar qué opciones tenemos.

¿Por qué el resurgimiento de la programación funcional?

La programación funcional lleva muchos años entre nosotros, pero siempre se asociaba más a entornos académicos que a empresariales y productivos. Es algo que parece que empieza a cambiar y muchas empresas, algunas muy importantes, están apostando fuerte por este paradigma. ¿Por qué?

Una de las razones puede ser que las aplicaciones son cada vez más difíciles de ejecutar en una sola máquina. Cada vez es más necesario poder soportar grandes dosis de concurrencia y paralelismo. No obstante el hardware actual, nos proporciona unas capacidades de paralelismo nunca vistas, y la nube hace cada vez más sencillo (y barato) construir sistemas distribuidos en distintos servidores. Y claro, para tareas como estas, un lenguaje funcional puede desenvolverse como pez en el agua.

Está claro también, que la programación funcional tiene conceptos muy interesantes, tanto que que muchos lenguajes no funcionales están poco a poco adoptándolos. Las últimas versiones de Java ya incluyen expresiones lambda, cosa ya incluida C# hace mucho tiempo. Cada versión de C# incluye más características funcionales y de hecho en su última versión, la 7, incluye el concepto funcional del pattern matching. Ruby, Python o Go, son otros lenguajes que incorporan algunas características funcionales.

Tampoco debemos olvidar JavaScript, que tiene muchos conceptos funcionales desde hace tiempo(funciones anónimas, funciones como miembros de primera clase etc.). Al ser uno de los lenguajes más populares, es fácil que estos conceptos lleguen cada vez a más programadores, haciendo que la revolución funcional llegue un poquito más lejos.

Pero esto no acaba aquí, ya que a los viejos rockeros funcionales, se están añadiendo muchos nuevos lenguajes, con muchas otras características modernas. Es el caso de Elixir, Clojure, Scala o Elm, por citar algunos

Fuente: Genbeta Dev

Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Si continúas navegando consideramos que aceptas su uso. Más información [X] Cerrar