Što je generičko programiranje?

Generičko programiranje je jedna popularna vrsta računalnog programiranja napisana na takav način da stvara najučinkovitiji mogući kod, a pritom omogućuje primjenu koda na što više situacija bez potrebe za bilo kakvim promjenama samog izvornog koda. Jednom kada je kod napisan, može izvršavati samo funkcije za koje je napisan. Korištenjem generičkog programiranja za stvaranje kodova koji rade u brojnim različitim situacijama, dok i dalje obavljaju istu osnovnu, cjelokupnu funkciju, programeri mogu koristiti jedan dio koda u različitim programima bez ikakvih promjena u izvorniku.

Tijekom 1970-ih, generičko programiranje debitiralo je u programskim jezicima Ada i CLU. Ubrzo nakon toga, drugi programski jezici kao što su Java i C++ počeli su koristiti generičko programiranje kako bi pojednostavili programski kod dok su dopustili da se isti kod koristi u više scenarija. Svaki programski jezik ima poseban način korištenja ovog koda i različite izraze koji ga opisuju. “Generici”, “predlošci” i “parametrizirani tipovi” svi su korišteni u nekom ili drugom trenutku za upućivanje na instance generičkog programiranja.

Za razumijevanje ove vrste programiranja važno je poznavati osnovne koncepte kako programski jezik funkcionira. Ako, na primjer, Paul želi napisati program koji zbraja dva broja, otkucao bi računalni kod kako bi zbrojio dva objekta. Zatim bi rekao računalu da su ta dva objekta brojevi i da bi konačni odgovor također trebao biti broj.

Dok će program raditi sve dok Paul zbraja dva broja, srušit će se ako pokuša zbrojiti još nešto. Ako bi Paul odlučio nizati rečenice u odlomak, program bi se srušio jer bi pronašao slova, a ne brojeve. Paul je mogao riješiti ovaj problem, međutim, korištenjem generičkog programiranja kako bi izvornom programu rekao da prihvati brojne varijable – i brojeve i slova – i tako program može stvarati rečenice ili izvoditi zbrajanje.

Ne trebaju svi programski jezici koncept generičkog programiranja da bi bili učinkoviti. Oni koji ga koriste su statički tipizirani jezici. To jednostavno znači da je kod, da tako kažemo, postavljen u kamen i da se ne može mijenjati dok je program pokrenut. Iz tog razloga, ako je programer odredio da će unos od korisnika biti u obliku slova, a korisnik upiše broj, program ne bi mogao koristiti unos. Stoga programeri pokušavaju predvidjeti sve logičke tipove podataka koje korisnik može unijeti, bilo da se radi o brojevima, slovima ili simbolima, i stvoriti program koji se može prilagoditi u skladu s tim.