Framework, Library, Toolkit: facciamo chiarezza

Nella terminologia informatica si sente spesso parlare di framework, library (libreria) e toolkit: erroneamente, i concetti vengono confusi tra loro, generando una notevole confusione tra gli addetti ai lavori.

Facciamo un po’ di chiarezza:

rubyonrails

  • un framework: è una collezione di librerie che fornisce le “fondamenta” per lo sviluppo di un’applicazione. È un componente più complesso e comprensivo dei toolkit e delle librerie. Fornisce, infatti, un’architettura standard e incoraggia il programmatore a seguire un paradigma di sviluppo per le applicazioni. Tutto il control flow è già inserito nel framework: rispetto ad una libreria o a un toolkit, un framework utilizza l’inversione del controllo (IOC): il programmatore si deve occupare di inserire la logica in parti ben definite indicate dal framework (via subclass o inserendo classi ad hoc).

    Il framework si occuperà poi di chiamare il codice custom quando si verificheranno determinati eventi (Hollywood Principle: “Don’t call us, we’ll call you”). Questo limita la flessibilità e forza il programmatore a seguire il design pattern definito dal framework.

    Lo scopo di usare un framework è quindi quello di permettere al programmatore di concentrarsi solamente sulla risoluzione del problema, ricercando la massima velocità di sviluppo dell’applicazione.In definitiva, un programmatore deve soltanto effettuare un override di alcuni metodi in un framework e fornire il proprio codice; sarà poi cura del framework chiamare il codice custom scirtto dal programmatore. Alcuni esempi di framework: Django, Ruby on Rails.

  • ajaxuna library (libreria): è un set di funzioni, organizzate in classi e package, che il programmatore può chiamare e riusare. Ogni chiamata esegue del codice e il controllo ritorna al programma chiamante. Le librerie non impongono alcun design o politiche di chiamate, nè standard di sviluppo da seguire. Il programmatore sceglie e chiama esplicitamente quali metodi della libreria uitlizzare, avendo piena flessibilità nella scelta di quali parti di libreria usare. Un esempio: le librerie Ajax.
  • gwt

  • un toolkit: un toolkit è un kit di strumenti adatti a risolvere un set di problemi di un dominio specifico, e quindi può essere composto da più librerie. La differenza tra toolkit e librerie è davvero sottile: un toolkit, come le librerie, non contiene design e logica dell’applicazione, ma offre al chiamante alcune funzionalità da poter sfruttare. Un esempio: Google Web Toolkit (GWT) (che permette di sviluppare applicazioni JavaScript scrivendo del codice Java), e il toolkit Dojo.

Leave a Reply