La programación declarativa es un paradigma de lenguaje de programación que se basa en la lógica y se centra más en lo que debe lograr un programa que en detallar cómo debe lograrse. Esto contrasta directamente con la programación imperativa, que describe con gran detalle cada paso de un comando o función de programación. Un lenguaje de programación declarativo tendrá unas directrices subyacentes basadas en la lógica para que el programa pueda funcionar, pero no da comandos específicos para cada paso. En su lugar, recibe instrucciones sobre lo que debe realizarse (el resultado final de una sección de código, por ejemplo), y el programa sigue una progresión lógica para completar esa tarea.
La programación declarativa pertenece a los lenguajes de dominio específico (DSL), no a los de propósito general. Los lenguajes específicos de dominio sólo se aplican a un dominio concreto: HTML, por ejemplo, es un DSL; sólo se aplica al código HTML de las páginas web. SQL (Structured Query Language, para la gestión de bases de datos) es otro. Esto hace posible que los programas declarativos completen una tarea de forma lógica: como el programa se aplica a un dominio específico, no necesita ser especialmente flexible o cambiante.
Programación declarativa frente a programación imperativa
La programación imperativa es la correcta para lenguajes como Java y C, que requieren instrucciones con detalle para cada fragmento de código. Para cambiar algo, debe estar programado de alguna manera. Esto capacita a los desarrolladores poder realizar cambios en el programa si es necesario. La programación declarativa no tiene tanta flexibilidad.
Sin embargo, la programación declarativa es más fácil de leer y está menos recargada. Puede ser difícil de entender para los desarrolladores porque el lenguaje no explica cómo se completó un proceso, pero es un paradigma útil para los programas que pertenecen a un dominio específico que tiene una lógica particular.