El estilo de programación declarativa se utiliza hoy en día en una multitud de casos y, en ocasiones, en estilo puro. Sin embargo, el enfoque no es apropiado para todos los usos.
El código declarativo destaca por su alto nivel de abstracción. Esto permite a los desarrolladores representar programas complejos de forma comprimida. Sin embargo, cuanto más extensa sea la ejecución, mayor será el riesgo de que el código se vuelva tan enrevesado que solo sea legible para el desarrollador que lo escribió. Para las empresas que quieren aplicar el mantenimiento y desarrollo de las aplicaciones con independencia de la persona que las desarrolló, esta situación puede suponer un peligro. En estos casos, los desarrolladores externos deberán esforzarse por leer el código declarativo hasta que hayan entendido la estructura y hayan resuelto los problemas.
No obstante, el nivel de abstracción de la programación declarativa también ofrece ventajas. Siempre que la ejecución se encuentre claramente separada del sistema mediante un algoritmo, el mantenimiento se podrá realizar con independencia del desarrollo de la aplicación. Las averías en el funcionamiento diario se reducen al mínimo. Al mismo tiempo, la optimización resulta más fácil, ya que el algoritmo utilizado es suficientemente abierto como para acceder a nuevos métodos. La desventaja del uso del algoritmo es que, dependiendo de determinadas características de los casos concretos de aplicación, una solución típica de este tipo a menudo resulta insuficiente.
Aunque de por sí no puede considerarse una desventaja, el modelo de la programación declarativa sí que presenta un desafío. Pensar en estados de solución es contrario al pensamiento natural del ser humano. Las personas pensamos en procesos que llevan a un objetivo, en lugar de partir de un objetivo e ir hacia atrás. En este sentido, se requiere de los desarrolladores un cambio de perspectiva y una familiarización que puede ralentizar, en un primer momento, las soluciones de los problemas. Sin embargo, una vez que se haya entrenado esta nueva forma de pensar, el enfoque declarativo puede desarrollar sus puntos fuertes.
Además, partir del desarrollo de la descripción del problema tiene la ventaja de que los equipos pueden esquematizar realmente rápido los modelos de soluciones. Por último, la programación concreta de la ejecución puede realizarse en un paso posterior. Para ello, el estilo declarativo de prototyping en el desarrollo ágil de software es muy propicio.