type | duration |
---|---|
read |
5min |
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.
- 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