Lo stile di programmazione dichiarativo è oggi utilizzato in svariati casi, sebbene non nella sua forma più pura. Tuttavia, questo approccio non è adatto a tutte le applicazioni.
Il codice dichiarativo è caratterizzato da un alto livello di astrazione. Ciò consente agli sviluppatori di visualizzare programmi complessi in forma compressa. Ma più grande è l'applicazione, maggiore è il rischio che il codice venga nidificato in modo tale da poter essere letto solo dallo sviluppatore che lo ha originariamente scritto. Questa situazione è pericolosa per le aziende che vogliono effettuare la manutenzione e sviluppare applicazioni indipendentemente da singole persone. In questo caso, gli sviluppatori esterni si ritrovano a dover faticosamente decifrare il codice dichiarativo prima di poterne comprendere la struttura e risolvere i problemi.
Tuttavia, il livello di astrazione della programmazione dichiarativa offre anche dei vantaggi. Poiché l'esecuzione è chiaramente separata dal sistema tramite un algoritmo, la manutenzione può essere eseguita indipendentemente dallo sviluppo dell'applicazione. Le interruzioni nelle operazioni quotidiane sono ridotte al minimo. Al contempo, l'ottimizzazione è più semplice perché l'algoritmo utilizzato è abbastanza aperto per accedere a nuovi metodi. Lo svantaggio dell'utilizzo di un algoritmo: tale soluzione basata su formule spesso può trattare solo in modo insufficiente le caratteristiche specifiche delle singole applicazioni.
Sebbene non sia uno svantaggio, il modello concettuale della programmazione dichiarativa pone una sfida. Pensare in termini di stati risolutivi va contro i meccanismi naturali di pensiero. Nei processi, si ragiona in vista di un obiettivo e non si fa invece il ragionamento inverso partendo da tale obiettivo. Ciò richiede agli sviluppatori di cambiare prospettiva e fare pratica, cosa che inizialmente può rallentare la risoluzione dei problemi. Tuttavia, una volta che la nuova mentalità è stata allenata, l'approccio dichiarativo può mostrare i suoi punti di forza.
Lo sviluppo basato sulla descrizione del problema ha anche il vantaggio che i team possono abbozzare modelli di soluzioni con una certa rapidità. Dopodiché, la programmazione effettiva dell'esecuzione può essere eseguita in un passaggio successivo. Ciò rende lo stile dichiarativo molto indicato per la prototipazione nello sviluppo agile di software.