Scegliere lo strumento o la tecnologia giusta per un dato problema è uno degli aspetti più importanti della programmazione. Lo strumento giusto è la chiave del successo di un progetto. È qui che la maggior parte dei programmatori fallisce perché di solito si occupano di molti strumenti. Questo riguarda l'ultima domanda, "dovresti costruire la tua applicazione con una libreria o un framework?" Questo è uno degli argomenti di discussione più discutibili all'interno della comunità dei programmatori e spesso fonte di confusione. Un piccolo team con una manciata di sviluppatori, per lo più principianti, può essere meglio lavorare con un framework, mentre le librerie sono blocchi da utilizzare ovunque e consentono una maggiore flessibilità e controllo.
La differenza chiave tra una libreria e un framework è "Inversion of Control" (IoC). Si potrebbe dire che framework è una raccolta di librerie, ma l'intera idea è in qualche modo diversa.
La libreria è una raccolta di funzioni riutilizzabili utilizzate dai programmi per computer che indicano le risorse che è possibile riutilizzare che possono includere classi, subroutine, codice precompilato, modelli di messaggi, ecc. La maggior parte dei linguaggi di programmazione ha le proprie librerie standard, ma i programmatori possono anche crearne una propria librerie personalizzate. È semplicemente un pezzo di codice scritto da altri sviluppatori che può essere riutilizzato ovunque. Le librerie possono essere incorporate senza problemi nei progetti esistenti per aggiungere funzionalità a cui è possibile accedere ulteriormente utilizzando un'API. Una piccola conoscenza è necessaria per iniziare.
Framework è un pezzo di codice che stabilisce come deve essere strutturato e gestito il progetto. Implica semplicemente l'architettura del tuo progetto come la definizione dei parametri di progettazione di un'applicazione in modo che tu possa concentrarti sulle specifiche del progetto, enfatizzando in tal modo la riusabilità del design piuttosto che la riusabilità del codice. A differenza delle librerie, il controllo è invertito in caso di framework e il codice non chiama mai in un framework, invece, il framework ti chiama. A differenza delle librerie, le strutture sottolineano la struttura e gli standard.
Nella programmazione, la libreria è una raccolta di funzioni riutilizzabili, ovvero le risorse che è possibile riutilizzare, utilizzate dai programmi per computer. Le risorse, talvolta chiamate come moduli, sono generalmente archiviate in formato oggetto. La maggior parte dei linguaggi di programmazione ha le proprie librerie standard, ma i programmatori possono anche creare le proprie librerie personalizzate. In termini semplici, una libreria è un insieme di funzioni che è possibile chiamare, mentre un framework è un pezzo di codice che determina l'architettura del progetto. In un certo senso, si intrecciano intelaiature e linguaggi di programmazione che insieme aiutano nei programmi per computer.
"Inversion of Control" è la differenza chiave che separa un framework da una libreria. Una libreria è un insieme di funzioni e routine utilizzate da altri programmi e si ha il pieno controllo se si chiama un metodo da una libreria. Tuttavia, il controllo è invertito nel caso di un framework. Stabilisce la struttura del tuo progetto e il codice non chiama mai in un framework, invece, ti chiama. In poche parole, puoi semplicemente pensare alla libreria come una funzione di un'applicazione e un framework come lo scheletro dell'applicazione in cui l'applicazione definisce le sue caratteristiche.
Le librerie sono un insieme di funzioni che possono essere utilizzate ovunque, nel senso che è semplicemente un pezzo di codice scritto da altri sviluppatori che può essere riutilizzato. Sono incorporati senza soluzione di continuità in progetti esistenti per aggiungere funzionalità a cui è possibile accedere utilizzando un'API. Sono per lo più utilizzati per moduli usati di frequente perché non è necessario collegarli esplicitamente a tutti i programmi che li utilizzano. Sono importanti nel collegamento del programma e nel processo di associazione. I framework, d'altra parte, forniscono un modo standard per creare e distribuire applicazioni e possono essere utilizzati principalmente quando si avvia un nuovo progetto piuttosto che integrato in quelli esistenti.
Per capire meglio la differenza tra una libreria e un framework, diamo un'occhiata a jQuery e AngularJS. jQuery è una libreria JavaScript multipiattaforma che semplifica la manipolazione del DOM insieme a molte altre cose complicate come manipolazione CSS, metodi evento HTML, chiamate AJAX, ecc. Lo scopo di jQuery è di semplificare l'uso di JavaScript sul tuo sito web. AngularJS, d'altra parte, è un framework strutturale basato sull'architettura MVC utilizzata per creare applicazioni web dinamiche. È interamente basato su HTML e JavaScript e, a differenza di jQuery, non può essere integrato in progetti esistenti perché, come framework, stabilisce il modo in cui il codice deve essere strutturato e gestito.
Quando c'è confusione nel decidere se si debba usare una libreria o un framework per costruire un'applicazione, tutto si riduce al controllo. Le librerie sono un insieme di funzioni che è possibile chiamare e ogni chiamata esegue alcune attività e restituisce il controllo all'utente. Possono essere incorporati senza problemi nei progetti esistenti e sono necessarie poche conoscenze per iniziare. I quadri, d'altro canto, dettano la struttura generale del progetto e, a differenza delle librerie, i framework chiamano te e il codice non chiama mai in un framework. La differenza fondamentale è ovviamente l'Inversion of Control. In termini semplici, le biblioteche sono più flessibili con un maggiore grado di controllo, mentre le strutture applicano la struttura e gli standard.