Programarea generică este un tip popular de programare pentru computer, scris în așa fel încât să creeze cel mai eficient cod posibil, permițând în același timp codului să se aplice în cât mai multe situații posibil, fără a necesita modificări ale codului original în sine. Odată scris codul, acesta poate îndeplini doar funcțiile exacte pentru care a fost scris. Folosind programarea generică pentru a crea coduri care funcționează într-un număr de situații diferite, în timp ce îndeplinesc aceeași funcție de bază, generală, programatorii pot folosi o singură bucată de cod în programe diferite fără a face vreodată modificări la original.
În anii 1970, programarea generică și-a făcut debutul în limbajele de programare Ada și CLU. Curând după aceea, alte limbaje de programare, cum ar fi Java și C++, au început să folosească programarea generică pentru a simplifica codul de programare, permițând în același timp să fie folosit același cod în mai multe scenarii. Fiecare limbaj de programare are un mod special de utilizare a acestui cod și diferiți termeni pentru a-l descrie. „Generice”, „șabloane” și „tipuri parametrizate” au fost toate folosite la un moment dat pentru a se referi la cazuri de programare generică.
Pentru a înțelege acest tip de programare, este important să cunoașteți conceptele de bază ale modului în care funcționează un limbaj de programare. Dacă, de exemplu, Paul dorește să scrie un program care adună două numere împreună, ar introduce codul computerului pentru a adăuga două obiecte. Apoi îi spunea computerului că acele două obiecte sunt numere și că răspunsul final ar trebui să fie și un număr.
În timp ce programul va funcționa atâta timp cât Paul adaugă două numere, se va bloca dacă încearcă să adauge altceva. Dacă Paul decidea să înșire propoziții împreună pentru a forma un paragraf, programul s-ar bloca pentru că ar găsi litere și nu cifre. Paul ar putea rezolva această problemă, totuși, utilizând programarea generică pentru a spune programului original să accepte un număr de variabile – atât numere, cât și litere – și astfel programul ar putea crea propoziții sau efectua adunări.
Nu toate limbajele de programare au nevoie de conceptul de programare generică pentru a fi eficiente. Cei care îl folosesc sunt limbi tipizate static. Acest lucru înseamnă pur și simplu că codul este pus în piatră, ca să spunem așa, și nu poate fi modificat în timp ce programul rulează. Din acest motiv, dacă un programator a specificat că intrarea de la utilizator ar fi sub formă de litere și utilizatorul a tastat un număr, programul nu ar putea folosi intrarea. Astfel, programatorii încearcă să prevadă toate tipurile de date logice pe care un utilizator le-ar putea introduce, fie că este vorba de numere, litere sau simboluri, și să creeze un program care se poate ajusta în consecință.