Programación declarativa
La programación declarativa es un paradigma que se centra en describir qué se quiere lograr, en lugar de indicar cómo lograrlo. Es decir, el programador especifica el resultado deseado, y no el procedimiento paso a paso para conseguirlo. Este enfoque es muy distinto al de la programación imperativa, donde el control explícito del flujo de ejecución es fundamental.
Este paradigma se centra en el «qué», no en el «cómo». El lenguaje o el motor de ejecución se encarga de decidir cómo lograr el resultado especificado. Reduce la complejidad al abstraer los detalles de implementación.
Algunos ejemplos de lenguajes de programación que siguen este paradigma son: SQL, Prolog, Haskell, Lisp, Erlang, XSLT, HTML, CSS, F#, Clojure.
SQL es un lenguaje para realizar consultas en bases de datos. Un ejemplo escrito en SQL es el siguiente:
SELECT nombre, edad FROM personas WHERE edad > 18;
Se especifica lo que queremos obtener (nombre de personas mayores de 18), pero no se indica cómo recorrer la base de datos ni cómo filtrar los registros.
Características
- No se manejan efectos secundarios: Las funciones o expresiones no cambian el estado del programa.
- Alta abstracción: Se describen relaciones, reglas o propiedades que deben cumplirse.
- Orientada a la lógica o a los datos: Los programas suelen consistir en declaraciones, consultas o expresiones.
- Facilita la optimización automática: El motor del lenguaje puede reorganizar internamente la ejecución para mejorar eficiencia.
Ventajas
- Código más legible y mantenible, porque describe directamente el objetivo.
- Menor riesgo de errores por efectos secundarios o manejo de estado.
- Ideal para tareas como consultas de bases de datos, procesamiento de datos o programación lógica.
Desventajas
- Menor control sobre cómo se ejecutan las operaciones, lo que puede generar problemas de rendimiento en ciertos casos.
- Puede requerir un motor de ejecución más sofisticado para interpretar correctamente las declaraciones.