Razlika između libraryja i frameworkova u programiranju

Razlika između Okvira i Biblioteka

Kada je reč o velikim projektima, programiranje softverskih rešenja može da bude poprilično složen i mukotrpan proces. Programski jezici su napravljeni tako da imaju sve stavke – ili barem što više stavki – koje su potrebne kako bi njihova sintaksa mogla da pruži adekvatna logička rešenja za algoritme koji čine jedno softversko rešenje.

Međutim, kako bi programski jezici mogli da zadovolje sve te potrebe, broj različitih iskaza postaje sve veći i sintaksa jezika postaje sve kompleksnija. Da bi developer mogao da odradi neki zahtevniji projekat, završio bi ga sa ogromnim brojem linija koda. Ovakav pristup je podložan greškama, pored toga što je neefikasan po pitanju vremena, a i drugih resursa.

Tu na snagu stupaju libraryji, odnosno biblioteke, i frameworkovi, koje na srpskom nazivamo okviri.

Šta predstavljaju library i framework?

Biblioteke (libraries) i okviri (frameworks) predstavljaju određeni set predefinisanih kodova koji „pakuju” određene više ili manje kompleksne funkcije određenog programskog jezika, čineći sintaksu jednostavnijom.

Recimo da vam je, ako želite da napišete kod koji radi određenu stvar u JavaScriptu, potrebno 10 linija koda. Ukoliko biste koristili biblioteku ili okvir, mogli biste jednostavno pozvati funkciju koja bi radila isto to u samo jednoj liniji koda.

To znači da biste uspeli da završite jedan složeniji projekat sa mnogo manje linija koda nego što biste mogli sa „vanila” varijantom, odnosno koristeći JavaScript ili neki drugi programski jezik bez upotrebe nekog okvira ili biblioteke.

Šta je library, a šta framework?

Sada na red dolazi ključno pitanje – šta je okvir, a šta biblioteka? Pokušaćemo da objasnimo ovo na najjednostavniji mogući način.

Recimo da ste slikar i da hoćete da naslikate jednu sliku. Razliku između ovih pojmova možemo predstaviti pomoću alata ili materijala koje ćete koristiti.

„Vanila” varijanta – Ovo je varijanta bez korišćenja bilo kakvog okvira ili biblioteke. Koristeći ovu analogiju, slikar bi u ovoj varijanti morao sam da meša boje i pravi nove nijanse. U ovom slučaju, slikar ima maksimalnu fleksibilnost, ali bi mu to oduzimalo mnogo vremena, a bilo bi i više prostora za grešku, npr. da ne pomeša boje kako treba i ne postigne željeni rezultat.

Korišćenje biblioteke – Analogno korišćenju biblioteke bilo bi da slikar uzme boje koje su već izmešane, bez potrebe za tim da ih on sam meša kako bi dobio određene nijanse. Naravno, ukoliko želi, on može da radi i to; međutim, širok spektar boja i njihovih nijansi mu je već na raspolaganju, što čini njegov rad znatno efikasnijim.

Korišćenje okvira – Sada zamislite da slikar treba da naslika sliku, ali već ima predefinisanu strukturu i nacrtanu skicu po kojoj treba da radi. Korišćenje okvira je dosta ograničavajuće, ali to pak čini posao još efikasnijim i manje podložnim greškama.

Dobre i loše strane okvira i biblioteka

Kada treba koristiti okvir, a kada biblioteku?

U nastavku ćemo navesti dobre i loše strane i jednog i drugog rešenja.

Dobre strane biblioteka

Dobre strane biblioteka su:

  • prilagodljivost – biblioteke su dosta fleksibilnije od okvira, što omogućava developerima da biraju koje funkcije žele da koriste, a koje ne – kao kada bi slikar koristio boje i imao slobodu da naslika bilo šta;
  • jednostavnost – biblioteke su dosta jednostavnije, što ih čini lakšim za učenje; nema potrebe za razumevanjem komplikovanih struktura, arhitektura i konvencija;
  • kontrola – developer bira kada će koristiti biblioteku i može je kombinovati sa „vanila” kodom bez mnogo komplikacija.

Loše strane biblioteka

Biblioteke imaju i svoje loše strane.

Neke od njih su:

  • složenija integracija – ukoliko developer odluči da koristi više različitih biblioteka, mora se pomučiti da bi osigurao da one zajedno rade kako treba, jer ponekad se može desiti da one ne budu kompatibilne;
  • veća odgovornost – veća sloboda donosi veću odgovornost; ukoliko developer koristi biblioteke, on sam mora da odredi strukturu aplikacije / softverskog rešenja i ostalih stvari, jer u bibliotekama, za razliku od okvira, te stavke nisu predefinisane.

Dobre strane okvira

Okviri, kao i biblioteke, služe određenoj svrsi i imaju sopstvene prednosti i nedostatke.

Dobre strane okvira su:

  • brzina i efikasnost – okviri obezbeđuju predefinisanu strukturu, što može da ubrza proces rada, bez potrebe za tim da se aplikacija ili softversko rešenje rade od nule;
  • manja sklonost greškama – okviri često podrazumevaju određen način na koji se stvari rade, što smanjuje šanse da developer napravi grešku; kod je, takođe, konzistentan i pouzdaniji je od biblioteka, koje nekad mogu da budu nekompatibilne jedna sa drugom;
  • širok spektar mogućnosti – okviri često dolaze sa određenim funkcijama i mogućnostima i, u poređenju sa bibliotekama, zahtevaju još manje rada od developera.

Loše strane okvira

Okviri imaju i svoje loše strane.

One su:

  • težina učenja – developerima treba više vremena i truda da nauče rad sa okvirima, zbog složenosti i nefleksibilnosti njihovih struktura, pogotovo ukoliko je okvir širok i obuhvata veliki broj funkcija;
  • manja fleksibilnost – s obzirom na to da okviri imaju više predefinisanih stvari nego biblioteke, oni imaju manju fleksibilnost, i developeri mogu imati poteškoća ukoliko žele da urade nešto što nije predviđeno okvirom koji se koristi;
  • pretrpanost – neki okviri imaju određene bespotrebne funkcije, koje čine okvir kompleksnijim nego što treba da bude, što dodatno otežava posao.

Programiranje u Libraryju i Frameworku

Zaključak

Da li koristiti biblioteku, okvir ili čak „vanila” varijantu programskog jezika – zavisi od veštine developera, kao i od njegovog cilja.

Fleksibilnost biblioteke možda nije od koristi nekome ko želi pouzdanost i efikasnost okvira.

Isto tako, neko želi da ima veću kontrolu nad svojim kodom i njegov projekat nije previše kompleksan da bi koristio okvir umesto biblioteke.

Bitno je da developer uzme u obzir svoje veštine i ciljeve kako bi odlučio kojim sredstvima želi da se služi.

Bilo da želite da koristite okvire, biblioteke ili „vanila” kodove, morate steći znanje u programiranju. Ukoliko želite da dobijete adekvatnu obuku, pogledajte naš Programming departman i odaberite programski jezik koji najviše odgovara vašim ciljevima!

  • 12.04.2024 14:58

Komentar