Programación Funcional - ¡Todo lo Que Necesitas Saber! Artículo 1 de 10

Ronaldo B.1 de agosto de 20226 min de lectura

En este artículo

Hola a todos, en esta serie vamos a hablar sobre un importante Paradigma de Programación, la Programación Funcional y cómo se aplica en JavaScript. Preparamos una serie de 10 artículos para abordar con ejemplos qué es la Programación Funcional, este es el primer artículo. ¿Cuáles son los conceptos que forman parte de este Paradigma y cómo programar en JavaScript utilizando la Programación Funcional? Encuentra la respuesta en esta serie completa.

Obs. al Lector: A veces, querido lector, verás en nuestras publicaciones la sigla TL;DR; cuando esté presente, prepárate, viene texto largo por ahí, así que el resumen de la publicación se colocará en el párrafo TL;DR, algo como Too Long Didn't Read o Texto Largo, No Leí.

TL;DR

Paradigma de Programación
Es un estilo de programar, o una forma de escribir programas siguiendo patrones que resuelvan problemas específicos; los paradigmas de programación están en la base de la creación y funcionamiento de los lenguajes de programación. Un lenguaje de programación puede seguir un único paradigma, como Haskell que es puramente funcional, o tener una combinación de paradigmas; por ejemplo, Scala que combina Programación Funcional y Orientación a Objetos. JavaScript es un lenguaje que también combina varios paradigmas, por lo que se le llama lenguaje de programación multiparadigma.

Programación Funcional, el Origen

Lenguajes de Programación Funcionales - Puramente Funcionales, o Multiparadigmas
Lisp, Haskell, Erlang, R, Elixir, R, Scala, JavaScript

Conceptos de la Programación Funcional
El Cálculo Lambda; cálculo-λ; Programación Declarativa; Inmutabilidad; Funciones de Primera Orden; Funciones Puras; Funciones Impuras; Currying;

FrameWorks y Bibliotecas JavaScript
React, Lodash y RambdaJS

Paradigma de Programación

Los lenguajes de programación son naturalmente creados siguiendo un modelo de funcionamiento, una forma de ejecución y un entorno donde son ejecutados; los Paradigmas de Programación comprenden la forma en que un lenguaje de programación trabaja, es el estilo de programar. Los lenguajes más antiguos eran comúnmente imperativos y lineales, de manera que el programa se escribía en la secuencia en que debía ser ejecutado, describiendo paso a paso cómo debía funcionar una rutina. Con la evolución de la tecnología, sin embargo, se pensaron nuevos conceptos o paradigmas para mejorar la escritura, la reutilización de código tanto en la producción como en el mantenimiento de códigos en programas, y así surgen la Programación Orientada a Objetos, además de otros paradigmas; la idea es siempre la reutilización de código, fácil mantenimiento y abstracción de los problemas, creando rutinas cada vez más inteligentes y abstractas, que pueden ser reutilizadas en innumerables situaciones.

La Programación Funcional es otro paradigma de programación, por lo que es una forma o un estilo de programar. Algunos lenguajes como Lisp, Haskell, Erlang y Elixir están totalmente creados utilizando este paradigma, de modo que los programadores en estos lenguajes necesitan conocer el concepto para aprovechar al máximo los recursos de la PF, abreviatura de Programación Funcional, aunque parezca Policía Federal, pero no, en este texto y en los siguientes PF se refiere a Programación Funcional.

Recientemente, con el advenimiento de bibliotecas populares como React que trabajan sobre el paradigma de la programación funcional, se vuelve necesario explorar los conceptos de cómo la Programación Funcional trabaja, cuáles son los recursos de este paradigma y por qué utilizar la Programación Funcional en el desarrollo de aplicaciones web.

Una de las grandes ventajas de la programación funcional es utilizar sus recursos en aplicaciones de gran escala; así, recursos como inmutabilidad, funciones de primera orden y muchos otros evitan o incluso minimizan efectos colaterales en aplicaciones de gran escala.

Bibliotecas como React utilizan este paradigma de programación y logran obtener rendimiento, organización y escalabilidad. En los próximos artículos, a medida que entendamos los recursos de la programación funcional, también veremos cómo aplicarla en la práctica con bibliotecas poderosas como RambdaJS y Lodash.

Si deseas obtener lo mejor de bibliotecas como React y otras que se valen del paradigma de la PF, estos artículos te ayudarán a elevar el nivel de tu conocimiento.

En este primer artículo hablaremos sobre el origen de la Programación Funcional, y algunos lenguajes que son puramente funcionales o multiparadigmas. En los próximos artículos detallaremos cada concepto de la Programación Funcional.

Programación Funcional, el Origen

El origen de la PF está en el mundo académico, en especial en las matemáticas, en tratar la programación como funciones matemáticas y siguiendo principios del Cálculo Lambda, cálculo-λ un concepto que trata de recursividad y donde las entidades pueden ser pasadas como parámetros y retornadas como valores dentro de otras funciones, además de tratar de la evolución de los datos; en este concepto los datos no son alterados, evolucionan; este concepto sirve de base para la creación de varios lenguajes de programación.

Análisis Matemático, estadística, análisis financiero, aplicaciones concurrentes están entre los objetivos del uso de la PF. Algunos lenguajes son puramente funcionales como: Lisp, Haskell, Elixir, mientras que otros son multiparadigmas, es decir, permiten más de un paradigma: Erlang, R, Scala. JavaScript también es un lenguaje multiparadigma, y es posible utilizar JavaScript de forma funcional.

Aunque solo el uso de funciones en la programación no significa que se esté utilizando necesariamente este paradigma, esta es una de las principales características.

Declarativa

En la PF, la forma de programar es declarativa; por ejemplo, en JavaScript, la función array.map() mapeará un array devolviendo los datos de este a una función de callback. Esta función no dice cómo recorre un array elemento por elemento, cómo pasa la información a la función de callback; por lo tanto, no es imperativa como un for(let i=0; i < array.length ; i++{} que en este caso es imperativo, es decir, dice exactamente cómo se ejecutará el código; en la PF, la forma de programar es siempre declarativa.

Beneficios de la Programación Funcional

¿Por qué utilizar la programación funcional?

  • Evita efectos colaterales
    • Dado que los datos son controlados por funciones puras y datos inmutables, podemos escalar la aplicación sin preocupación por efectos secundarios. Un componente se comportará según lo ha sido programado.
  • Es limpio y no verboso
    • Dado que la programación declarativa e inmutable está presente, tenemos una reducción en la escritura del código; códigos más limpios y objetivos tienden a tener mayor facilidad de mantenibilidad.
  • Trabajo en equipo
    • Es excelente para el trabajo en equipo, ya que los códigos que se han desarrollado en este paradigma siempre se comportan exactamente como fueron concebidos originalmente.

Conceptos de la Programación Funcional

En los próximos 9 artículos analizaremos con ejemplos en JavaScript, lo que está involucrado en cada parte de la Programación Funcional. También aprenderemos a utilizar las bibliotecas RambdaJS y Lodash, además de ver un ejemplo utilizando React.

Esperamos que te haya gustado este artículo; si te gustó, compártelo con amigos y compañeros que están aprendiendo React, JavaScript u otro lenguaje funcional. Aprovecha también un descuento exclusivo para nuestro Curso Completo de JavaScript con más de 38 horas: https://hcode.com.br/cursos/JSFULL

¡Nos vemos en el próximo artículo!

Glaucio Daniel

Sigue aprendiendo con Hcode

Regístrate en la plataforma de cursos y sigue las próximas guías del blog.