De-a lungul timpului au fost create noi paradigme, iar oamenii fie le-au subliniat la momentul respectiv, fie când au privit înapoi. Una dintre primele paradigme care a fost recunoscută ca un nou mod de programare a fost programarea structurată din anii 1960. Ideea de "paradigmă de programare" datează din 1978, dacă nu mai devreme, când Robert W. Floyd a folosit-o în timp ce preda. Cuvântul "paradigmă", în sensul în care Robert îl înțelegea, a fost folosit pentru prima dată de Thomas Kuhn în cartea sa, Structura revoluțiilor științifice (1962).
Cod mașină
Cea mai de jos nivel (cea mai apropiată de modul în care calculatorul înțelege lucrurile) și cea mai veche paradigmă de programare este codul mașinii, o paradigmă imperativă. Direcțiile din codul mașină sunt doar un set de numere într-o anumită ordine. Limbajul de asamblare este un pic mai puțin de nivel scăzut (și un pic mai puțin vechi). În limbajul de asamblare, direcțiile pentru calculator sunt date prin mnemotehnici (nume mai ușor de reținut), iar adresele de memorie (direcții pentru a găsi o informație în calculator) pot primi nume. Acestea sunt uneori numite limbaje de prima și a doua generație.
În anii 1960, limbajele de asamblare au fost îmbunătățite prin adăugarea de noi elemente, cum ar fi biblioteca COPY, macro (bucăți de cod "special" care se transformă în cod normal înainte ca programul să înceapă să ruleze), proceduri de execuție (seturi de instrucțiuni cărora li se dă un nume și care sunt salvate pentru mai târziu) și variabile (elemente cărora li se dă un nume și care sunt salvate pentru mai târziu) din afara programului. Acest lucru permitea oamenilor să folosească anumite coduri în mai multe proiecte și să nu fie nevoiți să se îngrijoreze de problemele specifice hardware-ului (probleme care apar doar la un singur tip de calculator) datorită comenzilor (nume pentru direcții) precum READ/WRITE/GET/PUT.
Assembly a fost și, uneori, încă mai este utilizat în sistemele în care este important ca codul să fie rapid și este, de asemenea, foarte utilizat în sistemele integrate, deoarece permite utilizatorului să aibă un control exact asupra a ceea ce face mașina.
Limbaje procedurale
La sfârșitul anilor 1960, oamenii au început să inventeze limbaje procedurale. Aceste limbaje de generația a treia (primele câteva din ceea ce numim acum limbaje de nivel înalt) aveau cuvinte legate de ceea ce încercau să rezolve. De exemplu,
- COmmon Business Oriented Language (COBOL) - utilizează cuvinte precum file, move și copy.
- FORmula TRANslation (FORTRAN) - utilizează cuvinte și simboluri matematice ( forme folosite în scris și la tastare). A fost dezvoltată mai ales pentru știință și inginerie.
- Limbajul ALGOL (ALGOrithmic Language) - creat pentru scrierea de algoritmi (seturi de pași care îi spun calculatorului ce trebuie să facă). Folosește cuvinte și simboluri matematice, la fel ca FORTRAN.
- Limbajul de programare unu (PL/I) - trebuia să fie util pentru toată lumea.
- Beginners All purpose Symbolic Instruction Code (BASIC) - creat pentru a ajuta începătorii să programeze.
- C - un limbaj de programare menit să facă multe lucruri. Dennis Ritchie a lucrat la el din 1969 până în 1973 la AT&T Bell Labs.
Programarea orientată pe obiecte
După ce mulți oameni au început să folosească limbaje procedurale, au inventat limbajele de programare orientate pe obiecte. În aceste limbaje, datele și "metodele" (modalitățile de manipulare a datelor) sunt plasate într-un singur "obiect". Unii programatori, cum ar fi Richard Stallman, nu sunt de acord cu faptul că limbajele orientate pe obiecte sunt mai bune pentru a explica idei unui computer decât limbajele procedurale.
Deoarece programarea orientată pe obiecte este o paradigmă, nu un limbaj, oamenii au creat limbaje de asamblare orientate pe obiecte, cum ar fi HLA (High Level Assembly).
Paradigme declarative
În același timp, unii oameni au creat limbaje de programare declarative. Un limbaj bine cunoscut pentru că este declarativ este SQL (un limbaj de adăugare și eliminare a unor elemente din tabele).