APPROCCIO PROCEDUALE
La maggior parte dei linguaggi di programmazione (come il pascal, C, C++, PHP, Delphi, ecc..) usa il paradigma proceduale. Cioè il programmatore deve specificare i comandi per risolvere un certo problema.
Ovviamente usando questi linguaggi di programmazione il programmatore ha un controllo quasi assoluto sulle azioni dell'elaboratore, rendendo il programma molto efficiente.
Naturalmente gli svantaggi sono notevoli: bisogna imparare in modo approfondito un linguaggio per realizzare un programma che risolve problemi particolari (tipo l'intelligenza artificiale) e il codice risulta molto difficile da comprendere.

APPROCCIO DICHIARATIVO
I programmatori che usano linguaggi con approccio dichiarativo (Prolog, SQL, ecc..) devono indicare solo cosa vogliono senza specificare come ottenerlo, infatti, il compito di trovare la soluzione è affidato al sistema.
Sicuramente apprendere un linguaggio dichiarativo è molto più semplice, soprattutto per chi non si vuole specializzare nel campo informatico.
Tuttavia, nonostante i programmi dichiarativi sono molto più leggibili e compatti, la loro esecuzione risulta spesso più lenta perchè non è possibile ottimizzare l'aloritmo per risolvere il problema.