I paradigmi sono metodi di programmazione, pertanto non sono correlati ai linguaggi. Essi ci dicono quali strutture di programmazione usare e quando usarle. I paradigmi più conosciuti sono tre: la programmazione strutturata, la programmazione ad oggetti e la programmazione funzionale.
Questo paradigma fu scoperto da Edsger Wybe Dijkstra nel 1968. Egli capì il problema costituito dall'utilizzo dei goto, i quali rendevano il codice difficile da leggere, e li sostituì con i più familiari costrutti if/else/then e do/while/until. Possiamo riassumere questo paradigma dicendo che:
La programmazione strutturata impone la disciplina sul trasferimento diretto del controllo
Questo paradigma fu scoperto due anni prima, nel 1966. La sua scoperta condusse alla nascita di concetti quali: l'incapsulazione, l'ereditarietà e il polimorfismo. ****Possiamo riassumere questo paradigma dicendo che:
La programmazione ad oggetti impone la disciplina sul trasferimento indiretto del controllo
Questo paradigma è il risultato del lavoro svolto da Alonzo Church, che nel 1936 inventò il lambda-calcolo. Da qui nacque uno dei primi linguaggi funzionali, il LISP. Uno dei concetti fondamentali dei linguaggi funzionali è l'immutabilità, dove i valori non vengono calcolati cambiando lo stato del programma attraverso le assegnazioni, ma vengono costruiti attraverso i valori iniziali. Possiamo riassumere questo paradigma dicendo che:
La programmazione funzionale impone la disciplina sull'assegnamento