A programozás egyik legfontosabb eleme az adott problémához megfelelő eszköz vagy technológia kiválasztása. A megfelelő eszköz a projekt sikerének kulcsa. A legtöbb programozó ekkor kudarcot vall, mert általában sok eszközzel foglalkoznak. Ez a végső kérdésre vonatkozik: "Ha az alkalmazást könyvtárral vagy keretrendszerrel kell összeállítania?" Ez a programozók közösségében a vita egyik legvitathatóbb témája, és gyakran zavart okoz. Egy kis csapat, maroknyi fejlesztõvel, elsõsorban kezdõkkel, jobban teljesítheti a keretrendszer használatát, míg a könyvtárak építőelemeket tartalmaznak, amelyek bárhol felhasználhatók, és nagyobb rugalmasságot és irányítást tesznek lehetõvé..
A könyvtár és a keret közötti kulcsfontosságú különbség az „irányítás inverziója” (IoC). Lehet mondani, hogy a keret egy könyvtárak gyűjteménye, de az egész ötlet valahogy más.
A Könyvtár a számítógépes programok által használt, újrafelhasználható funkciók gyűjteménye, azaz az újrafelhasználható erőforrások, amelyek tartalmazhatnak osztályokat, szubrutinokat, előre összeállított kódot, üzenetsablonokat stb. A programozási nyelveknek többnyire vannak saját szabványos könyvtárai, de a programozók is létrehozhatnak saját egyedi könyvtárak. Ez egyszerűen egy olyan kóddarab, amelyet más fejlesztők írtak, és bárhol felhasználhatók. A könyvtárakat zökkenőmentesen be lehet építeni a meglévő projektekbe olyan funkciók hozzáadása érdekében, amelyekhez további hozzáférést biztosíthat egy API-val. Az induláshoz kis ismeretekre van szükség.
A keret egy olyan kódrészlet, amely diktálja a projekt felépítését és futtatását. Egyszerűen megbízza a projekt architektúráját, például meghatározza az alkalmazás tervezési paramétereit, így összpontosíthat a projekt sajátosságaira, hangsúlyozva ezáltal a design újrafelhasználhatóságát, nem pedig a kód újrafelhasználhatóságát. A könyvtárakkal ellentétben a keretek esetében a vezérlés meg van fordítva, és a kód soha nem lép keretbe, ehelyett a keret felhívja Önt. A könyvtáraktól eltérően a keretek a struktúrára és a szabványokra helyezik a hangsúlyt.
A programozás során a könyvtár az újrafelhasználható funkciók gyűjteménye - vagyis az újra felhasználható erőforrások -, amelyeket a számítógépes programok használnak. Az erőforrásokat, amelyeket néha moduloknak hívnak, általában objektum formátumban tárolják. A legtöbb programozási nyelvnek megvan a saját standard könyvtára, de a programozók saját egyedi könyvtárakat is létrehozhatnak. Egyszerűen fogalmazva: a könyvtár olyan funkciókészlet, amelyet meghívhat, míg a keret egy olyan kóddarab, amely a projekt architektúráját diktálja. Bizonyos értelemben a keretek és a programozási nyelvek összefonódnak, amelyek együttesen segítenek a számítógépes programokban.
Az „irányítás inverziója” a legfontosabb különbség, amely elválasztja a keretet a könyvtártól. A könyvtár olyan funkciók és rutinok halmaza, amelyeket más programok használnak, és Ön teljes ellenőrzése alatt áll, ha egy metódust hív meg egy könyvtárból. A szabályozás azonban egy keret esetében fordított. Ez diktálja a projekt felépítését, és a kód soha nem lép keretbe, hanem felhív. Egyszerűen fogalmazva: a könyvtárat egyszerűen egy alkalmazás függvényében és egy keretként gondolhatja, mint az alkalmazás vázát, amelyben az alkalmazás meghatározza a saját jellemzőit.
A könyvtárak olyan funkciókészlet, amely bárhol felhasználható, azaz egyszerűen más fejlesztők által írt kóddarab, amely újra felhasználható. Zökkenőmentesen beépülnek a meglévő projektekbe olyan funkciók hozzáadása érdekében, amelyekhez API-kkal férhet hozzá. Elsősorban a gyakran használt modulokhoz használják, mert nem kell kifejezetten összekapcsolnia azokat minden programmal, amely ezeket használja. Fontosak a program-összekapcsolási és kötési folyamatban. A keretrendszerek viszont egy szabványos módszert kínálnak az alkalmazások készítéséhez és telepítéséhez, és leginkább egy új projekt indításakor használhatók, nem pedig a meglévőkbe integrálhatók..
A könyvtár és a keret közötti különbség jobb megértése érdekében vessünk egy pillantást a jQuery és az AngularJS elemre. A jQuery egy platformon átívelő JavaScript könyvtár, amely egyszerűsíti a DOM manipulációját és sok más bonyolult dolgot, például CSS manipulációt, HTML esemény módszereket, AJAX hívásokat stb. A jQuery célja a JavaScript használatának egyszerűsítése az Ön webhelyén. Az AngularJS viszont egy dinamikus webes alkalmazások létrehozására használt MVC architektúrán alapuló szerkezeti keret. Teljesen HTML-en és JavaScript-en alapul, és a jQuery-vel ellentétben nem integrálható a meglévő projektekbe, mert keretként diktálja a kód szerkezetének és futtatásának módját..
Ha zavar van annak eldöntésében, hogy könyvtárat vagy keretet kell-e alkalmaznia az alkalmazás létrehozásához, akkor mindezt ellenőrzés alá vonja. A könyvtárak olyan funkciókészlet, amelyet fel lehet hívni, és minden hívás végrehajt egy bizonyos feladatot, és visszaküldi a vezérlőt Önnek. Zökkenőmentesen beépíthetők a meglévő projektekbe, és kevés ismeretre van szükség az induláshoz. A keretrendszerek viszont a projekt általános felépítését diktálják, és a könyvtáraktól eltérően a keretrendszerek felhívják Önt, és a kód soha nem hívja be a keretbe. A legfontosabb különbség természetesen a vezérlés inverziója. Egyszerűen fogalmazva: a könyvtárak rugalmasabbak, nagyobb fokú ellenőrzéssel rendelkeznek, míg a keretek a struktúrát és a szabványokat érvényesítik.