De nos jours, la programmation déclarative est utilisée dans un grand nombre de cas, même si elle n’est alors pas toujours employée dans sa forme la plus pure. Cependant, cette approche n’est pas adaptée à toutes les utilisations.
Le code déclaratif se distingue par un niveau d’abstraction élevé. Les développeurs peuvent ainsi écrire des programmes complexes sous forme synthétique. Le cas échéant, plus l’application est volumineuse, plus le code risque d’être imbriqué au point de ne plus être lisible que par son développeur d’origine. Pour les entreprises gérant et souhaitant poursuivre le développement d’applications de manière indépendante, cette situation représente un danger. Les développeurs tiers doivent en effet déployer de gros efforts pour déchiffrer le code déclaratif, en comprendre la structure et résoudre les problèmes.
Cela dit, le niveau d’abstraction de la programmation déclarative présente également des avantages. L’exécution étant clairement séparée du système par un algorithme, la maintenance peut être exécutée indépendamment du développement de l’application. Au quotidien, les perturbations d’exploitation sont réduites au minimum. Dans le même temps, l’optimisation du code est plus simple, car l’algorithme utilisé est suffisamment ouvert pour permettre le recours à de nouvelles méthodes. L’inconvénient de l’utilisation d’un algorithme : dans certaines circonstances, une solution formelle peut n’aborder que partiellement des caractéristiques spécifiques de différents cas d’application.
Cela ne représente pas forcément un inconvénient en tant que tel, mais s’impose comme un défi dans le modèle de pensée de la programmation déclarative. Penser en termes de solution va à l’encontre du processus de pensée humaine naturelle. Les hommes ont tendance à réfléchir aux étapes de processus menant à un objectif, plutôt qu’à partir de l’objectif pour remonter jusqu’à la situation initiale. Les développeurs doivent ici changer leur mode de pensée, ce qui, dans un premier temps, peut ralentir la résolution de problèmes. Mais une fois cette nouvelle approche acquise, il est enfin possible d’exploiter au maximum les atouts de l’approche déclarative.
Le développement d’une solution à partir de la description d’un problème présente également l’avantage de permettre aux équipes d’esquisser assez rapidement des modèles de solution. La programmation concrète de l’exécution peut en outre avoir lieu à une étape ultérieure. Le style déclaratif est particulièrement adapté au prototypage dans le cadre du développement de logiciels agiles.