Odabir pravog alata ili tehnologije za određeni problem jedan je od najvažnijih aspekata programiranja. Pravi alat ključ je uspjeha projekta. Tu većina programera ne uspije, jer se obično bave mnogim alatima. To se odnosi na krajnje pitanje, "treba li graditi aplikaciju s knjižnicom ili okvirom?" Ovo je jedna od najvažnijih raspravnih tema raspravljanja u zajednici programera i često predstavlja zbrku. Mali tim s nekolicinom programera, uglavnom početnika možda će bolje raditi s okvirom, dok knjižnice grade građevne blokove koji se mogu koristiti bilo gdje i omogućuju veću fleksibilnost i kontrolu.
Ključna razlika između biblioteke i okvira je "Inverzija kontrole" (IoC). Moglo bi se reći da je okvir zbirka knjižnica, ali cijela je ideja nekako drugačija.
Biblioteka je skup funkcija za višekratnu upotrebu koje koriste računalni programi, što znači resurse koje možete ponovo koristiti, a koje uključuju klase, podprograme, unaprijed sastavljeni kôd, predloške poruka itd. Uglavnom programski jezici imaju svoje standardne knjižnice, ali programeri mogu stvoriti i svoje prilagođene knjižnice. To je jednostavno dio koda koji su napisali drugi programeri i koji se može ponovo upotrebljavati bilo gdje. Knjižnice se mogu bez problema integrirati u postojeće projekte radi dodavanja funkcionalnosti kojima možete dodatno pristupiti pomoću API-ja. Za početak je potrebno malo znanja.
Framework je dio koda koji diktira kako projekt treba biti strukturiran i pokrenut. Jednostavno nalaže arhitekturu vašeg projekta, kao što je definiranje dizajnerskih parametara aplikacije tako da se možete usredotočiti na specifičnosti projekta, naglašavajući ponovnu upotrebu dizajna, a ne ponovnu upotrebu koda. Za razliku od knjižnica, kontrola je invertirana u slučaju okvira i kod se nikad ne poziva u okvir, umjesto toga, okvir vas poziva. Za razliku od knjižnica, okviri naglašavaju strukturu i standarde.
U programiranju, knjižnica je skup funkcija za višekratnu uporabu - što znači resurse koje možete ponovo upotrijebiti - koje koriste računalni programi. Resursi, koji se ponekad nazivaju i moduli, obično se pohranjuju u objektnom formatu. Većina programskih jezika ima svoje standardne knjižnice, ali programeri mogu stvoriti i vlastite prilagođene biblioteke. Jednostavno rečeno, knjižnica je skup funkcija koje možete nazvati, dok je okvir dio koda koji diktira arhitekturu vašeg projekta. Na neki način se isprepliću okviri i programski jezici koji zajedno pomažu u računalnim programima.
"Inverzija kontrole" je ključna razlika koja odvaja okvir od knjižnice. Knjižnica je skup funkcija i rutina koje koriste drugi programi i vi imate potpunu kontrolu ako je nazovete metodom iz biblioteke. Međutim, upravljanje se preokreće u slučaju okvira. Diktira strukturu vašeg projekta i kôd vas nikada ne uvodi u okvir, već vas zove. Jednostavno rečeno, knjižnicu možete jednostavno smatrati funkcijom aplikacije i okvirom kao kostrom aplikacije u kojem aplikacija definira vlastite značajke.
Knjižnice su skup funkcija koje se mogu koristiti bilo gdje što znači da je to jednostavno kod koji su napisali drugi programeri i koji se može ponovo upotrijebiti. Neovisno se integriraju u postojeće projekte kako bi dodali funkcionalnost kojoj možete pristupiti putem API-ja. Uglavnom se koriste za često korištene module jer ih ne morate izričito povezivati sa svim programima koji ih koriste. Važni su u povezivanju programa i procesu vezivanja. Okviri, s druge strane, pružaju standardni način izrade i implementacije aplikacija i mogu se uglavnom koristiti prilikom pokretanja novog projekta, a ne integrirati u postojeće.
Da biste bolje razumjeli razliku između biblioteke i okvira, pogledajmo jQuery i AngularJS. jQuery je JavaScript na više platformi, koja pojednostavljuje manipulaciju DOM-om zajedno s mnogim drugim kompliciranim stvarima kao što su CSS manipulacija, HTML događaj metode, AJAX pozivi itd. Svrha jQuery-a je pojednostaviti upotrebu JavaScripta na vašoj web stranici. AngularJS, s druge strane, strukturni je okvir zasnovan na MVC arhitekturi koja se koristi za stvaranje dinamičnih web aplikacija. Potpuno se temelji na HTML-u i JavaScript-u, a za razliku od jQuery-a, on se ne može integrirati u postojeće projekte jer kao okvir diktira način strukturiranja i pokretanja koda..
Kada postoji zabuna u odlučivanju da li trebate koristiti knjižnicu ili okvir za izradu aplikacije, sve se svodi na kontrolu. Knjižnice su skup funkcija koje možete nazvati i svaki poziv obavlja neki zadatak i vraća vam kontrolu. Mogu se jednostavno uklopiti u postojeće projekte i za početak je potrebno malo znanja. Okviri, s druge strane, diktiraju cjelokupnu strukturu vašeg projekta i za razliku od biblioteka, okviri vas zovu i kod nikada ne ulazi u okvir. Ključna razlika je naravno Inverzija upravljanja. Jednostavno rečeno, knjižnice su fleksibilnije s većim stupnjem kontrole, dok okviri provode strukturu i standarde.