Skip to content

Latest commit

 

History

History

13-closing

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
type duration
read
5min

Cierre

Resumen

Los Paradigmas de Programación (Programming Paradigms) son formas diferentes de pensar en cómo se organiza un programa basado en una serie de principios, los cuales resultan en estilos muy distintos y lenguajes muy diversos.

Algunos paradigmas son más imperativos y otros más declarativos. Por ejemplo, la programación orientada a procedimientos, o la programación orientada objetos, van a tener un caracter imperativo, mientras que la programación funcional tiene un caracter mucho más declarativo.

La programación por procedimientos (procedural programming) pertenece a la rama del estilo imperativo. Cuando programamos orientados a procedimientos nos concentramos en agrupar código en procedimientos o funciones.

En la programación orientada a objetos , vez de pensar en acciones nos enfocamos en definir los "tipos" de datos primero, y después decidimos que interacciones van a tener. En OOP diseñamos objetos, que van a tener una data (un estado) y una serie de operaciones que pueden realizar.

En la programación orientada a objetos el principal mecanismo de reuso de código es la herencia, donde un objeto "hereda" una serie de propiedades y métodos de otro objeto o clase (en herencia prototipal heredamos directamente de un objeto en vez de una clase).

La programación funcional pertenece a la rama de los paradigmas declarativos. Esto quiere decir que el "estilo" en el que programamos va a estar mucho más enfocado en qué queremos hacer y no tanto en los detalles de cómo la computadora lo ejecuta.

En FP el principal mecanismo de cómputo es la aplicación de argumentos a funciones. Como consecuencia, evitamos la asignación de varialbles, mutación y delegamos el control de flujo.

Principios de la programación funcional:

  • Higher order functions (funciones como argumentos y/o valores de retorno)
  • Funciones puras (sin efectos secundarios y siempre retorna lo mismo para los mismos argumentos)
  • Composición de funciones
  • Inmutabilidad (no "mutar" valores asignados)
  • Evitar el "estado" compartido (no usar referencias fuera del scope de la función)
  • Uso de recursión como alternativa a la iteración.

Respondamos juntxs las preguntas de la apertura

  • Qué son los paradigmas de programación?
  • Qué es el estilo imperativo
  • Qué es el estilo declarativo
  • Qué paradigmas encajan dentro del estilo imperativo y cuales en el declarativo
  • Qué es la programación por procedimientos?
  • Qué es la programación orientada a objetos?
  • Qué es la programación funcional?
  • Cómo se aplican los diferentes paradigmas al mundo de JavaScript?
  • Cómo se comparan los diferentes paradigmas (diferencias, similitudes, ...)?
  • Cómo programar en los diferentes estilos