Ja­va­Script (ab­bre­via­to JS) è un lin­guag­gio di scripting orientato agli oggetti che permette di vi­sua­liz­za­re i contenuti dinamici HTML nel browser, ma viene anche uti­liz­za­to per la pro­gram­ma­zio­ne fun­zio­na­le e pro­ce­du­ra­le. Ja­va­Script è composto da oggetti pre­de­fi­ni­ti (elementi con spe­ci­fi­che proprietà o metodi e funzioni) che con­sen­to­no l’accesso ad una pagina, anche se risultano complessi da usare. Molti comandi utili sono ormai stati raccolti in diverse librerie Ja­va­Script (in inglese “Ja­va­Script Libraries”) e framework, cioè degli strumenti che fa­ci­li­ta­no il lavoro di pro­gram­ma­zio­ne. Vi pre­sen­tia­mo quelli più co­no­sciu­ti.

Libreria vs. framework

No­no­stan­te vengano spesso usati come sinonimi, i termini “libreria“ e “framework“ hanno in realtà si­gni­fi­ca­ti diversi. Nei paragrafi seguenti vi spie­ghia­mo meglio in cosa con­si­sta­no le loro dif­fe­ren­ze.

Libreria

Nel campo della pro­gram­ma­zio­ne una libreria è so­stan­zial­men­te una libreria di programmi, in­di­pen­den­te­men­te da quali comprenda. Le librerie con­ten­go­no sempre dei sot­to­pro­gram­mi che hanno delle funzioni per fa­ci­li­ta­re il lavoro di pro­gram­ma­zio­ne. Al contrario di un framework, una libreria viene svi­lup­pa­ta per un uso specifico e possiede per questo delle funzioni adatte al software di ri­fe­ri­men­to. Ad esempio si utilizza la libreria Ja­va­Script D3.js per la vi­sua­liz­za­zio­ne dei dati, così da poter rea­liz­za­re sia piccole tabelle, diagrammi e sta­ti­sti­che che rap­pre­sen­ta­zio­ni grafiche complesse (com­pren­si­ve di ani­ma­zio­ni e altre pos­si­bi­li­tà di in­te­ra­zio­ne). Le librerie sono sempre integrate in un software che è in grado di accedere alle funzioni di cui ha bisogno, quando ne­ces­sa­rio. Per questo fun­zio­na­no solo all’interno di un programma e non possono essere eseguite in maniera autonoma.

Framework

Anche un framework (tra­du­ci­bi­le come “in­te­la­ia­tu­ra“ o “struttura”) non è un programma autonomo, ma appare piuttosto come un tipo par­ti­co­la­re di libreria standard (composta da una col­le­zio­ne di classi e funzioni). Un framework si presenta come la struttura di base di un’ap­pli­ca­zio­ne e determina il processo di sviluppo. Esistono precisi modelli con diverse funzioni (spesso sotto forma di più librerie) e si uti­liz­za­no per lo sviluppo di nuovi programmi autonomi. Un esempio al riguardo è il framework Zend per PHP, uti­liz­za­to nel software per l’e-commerce di Magento e dallo strumento di analisi Piwik.

In­ver­sio­ne del controllo

Un’altra dif­fe­ren­za tra framework e libreria consiste nel controllo. Nelle librerie i pro­gram­ma­to­ri accedono al codice at­tra­ver­so un’in­ter­fac­cia di pro­gram­ma­zio­ne, invece i framework eseguono un’in­ver­sio­ne di controllo (in inglese “Inversion of Control”): il codice viene inserito in strutture pre­de­fi­ni­te del framework e ri­chia­ma­to quando richiesto. In sintesi si può dire che le librerie vengono uti­liz­za­te dal programma, mentre un framework gli dà istru­zio­ni.

Librerie e framework Ja­va­Script

Ja­va­Script è so­stan­zial­men­te un lin­guag­gio di pro­gram­ma­zio­ne semplice, par­ti­co­lar­men­te adatto per essere uti­liz­za­to dal browser. Delle com­pli­ca­zio­ni sorgono al momento di uti­liz­za­re un’in­ter­fac­cia per il sito, cioè il DOM (Document Object Model) che si appoggia ai framework e alle librerie Ja­va­Script, volte ad agevolare il compito degli svi­lup­pa­to­ri. Nei prossimi paragrafi vi pre­sen­tia­mo le esten­sio­ni Ja­va­Script di­spo­ni­bi­li gra­tui­ta­men­te.

Le librerie Ja­va­Script più co­no­sciu­te

Le librerie Ja­va­Script sono dei codici riu­ti­liz­za­bi­li at­tra­ver­so i quali vengono assegnate proprietà e funzioni spe­ci­fi­che per un sito. La libreria Ja­va­Script più famosa è jQuery, che offre molte funzioni utili, ma ve ne sono anche altre.

jQuery

La libreria completa jQuery è quella più uti­liz­za­ta e co­no­sciu­ta, dal momento che il codice può essere scritto per tutti i browser e vengono creati molti plug-in. La libreria open source è una com­po­nen­te es­sen­zia­le di molti CMS come WordPress, Drupal o Joomla!. jQuery serve a sem­pli­fi­ca­re la gestione degli elementi DOM e presenta diverse funzioni per questo scopo: con i selettori del CSS3 si possono se­le­zio­na­re fa­cil­men­te e ma­ni­po­la­re gli elementi del sito. Inoltre questa libreria è par­ti­co­lar­men­te ap­prez­za­ta perché permette di integrare richieste Ajax, cioè delle richieste HTTP dove non è ne­ces­sa­rio ri­ca­ri­ca­re la pagina.

Vantaggi Svantaggi
Supporto Ajax Può essere molto lento rispetto al CSS
Molto diffuso Si avvicina a uno “Spaghetti code“
Ampia libreria Per via delle nuove funzioni di Ja­va­Script è diventato in parte superfluo
Facile da uti­liz­za­re
In­nu­me­re­vo­li plug-in

jQuery UI

jQuery UI è un’esten­sio­ne libera per jQuery e serve alla rea­liz­za­zio­ne e gestione di un’in­ter­fac­cia utente (in inglese “User Interface” o ab­bre­via­ta “UI”), per esempio per le pagine web o web app. È par­ti­co­lar­men­te adatta per rea­liz­za­re effetti semplici ed elementi in­te­rat­ti­vi; infatti jQuery dispone di diverse funzioni per creare elementi in­te­rat­ti­vi (come drag&drop, in­gran­di­men­to e ri­di­men­sio­na­men­to degli elementi del sito, ecc.), ani­ma­zio­ni, effetti e widget (come au­to­com­ple­ta­men­to, slider, da­te­pic­ker, ecc.). Grazie all’editor grafico The­me­Rol­ler è possibile creare dei propri temi, ma anche uti­liz­za­re quelli già di­spo­ni­bi­li e adattarli; la struttura modulare permette di im­ple­men­ta­re solo le com­po­nen­ti ne­ces­sa­rie.

Vantaggi Svantaggi
Facile da usare grazie ai widget Sviluppo lento
Editor grafico The­me­Rol­ler Richiede jQuery

Dojo Toolkit

Dojo Toolkit è adatto so­prat­tut­to per la rea­liz­za­zio­ne di ap­pli­ca­zio­ni web e contenuti dinamici. Rien­tran­do tra le librerie Ja­va­Script storiche, che hanno ancora un certo peso sul mercato, presenta svariate fun­zio­na­li­tà e le com­po­nen­ti più im­por­tan­ti del toolkit sono il programma prin­ci­pa­le (Dojo) e Dijit, un’in­ter­fac­cia utente già pre­im­po­sta­ta. Inoltre si possono integrare degli elementi nel sito da creare grazie ai widget già pronti. Anche Dojo può usare sia DOM sia Ajax.

Vantaggi Svantaggi
Facile da usare grazie ai widget Difficile da usare
Supporto Ajax Sviluppo lento
Libreria ampia e modulare

React

React è stato uti­liz­za­to per la prima volta nel 2011 nel news feed di Facebook e nel 2013 è stata ri­la­scia­ta la versione open source. Si tratta di un’altra libreria di Ja­va­Script che permette di creare un’in­ter­fac­cia utente. La par­ti­co­la­ri­tà di questa libreria risiede nel fatto che si può uti­liz­za­re nei client delle pagine web, ma anche sul server o per lo sviluppo delle app. Ciò è ri­con­du­ci­bi­le all’uso di un DOM virtuale che consente di testare le ap­pli­ca­zio­ni web in modo più facile. Inoltre React è ap­prez­za­to da molti svi­lup­pa­to­ri per via del suo “One direction data flow”, quindi per il traffico dati a senso unico: questa tec­no­lo­gia ga­ran­ti­sce un codice stabile, impedendo che le modifiche del codice di livello inferiore in­flui­sca­no su quello di livello superiore. Le modifiche possono avere delle ri­per­cus­sio­ni solo nell’altra direzione.

Vantaggi Svantaggi
DOM virtuale Difficile da usare
Traffico dati a senso unico (one way data flow)
Rendering lato server
Uti­liz­za­bi­le per le app sui di­spo­si­ti­vi mobili

Zepto

Zepto è un vero peso piuma: infatti il fatto che jQuery si con­trad­di­stin­gue so­prat­tut­to per le sue molte funzioni spaventa alcuni svi­lup­pa­to­ri. La libreria Ja­va­Script più co­no­sciu­ta risulta troppo in­gom­bran­te per alcuni utenti. Il mi­ni­ma­li­sta Zepto si presenta così molto più leggero, dovrebbe perciò caricare più ve­lo­ce­men­te e ri­chie­de­re meno spazio, motivo per cui è uti­liz­za­to so­prat­tut­to nelle app per i di­spo­si­ti­vi mobili. Per mantenere al minimo la quantità dei file, Zepto riduce ad esempio la com­pa­ti­bi­li­tà con i browser più datati. Si deve ricorrere a dei moduli ag­giun­ti­vi anche per per­met­te­re l’uso di Ajax e delle ani­ma­zio­ni.

Vantaggi Svantaggi
Molto leggero Non supporta le versioni più datate dei browser
Facile da uti­liz­za­re Uso di Ajax e delle ani­ma­zio­ni solo con moduli ag­giun­ti­vi
Pochi vantaggi rispetto a jQuery

CreateJS

Non solo una, ma più librerie allo stesso tempo: CreateJS è una suite composta da quattro diverse librerie: EaselJS (per i grafici e l’in­te­rat­ti­vi­tà), TweenJS (per le ani­ma­zio­ni), SoundJS (per i suoni) e PreloadJS (per il pre­ca­ri­ca­men­to). Sono autonome e in­di­pen­den­ti tra di loro, quindi se ad esempio in un progetto serve solo una libreria, non si devono per forza im­ple­men­ta­re tutte e quattro. In più vengono messi a di­spo­si­zio­ne alcuni strumenti che sem­pli­fi­ca­no il lavoro con le librerie Ja­va­Script. In par­ti­co­la­re CreateJS si concentra sullo sviluppo di ap­pli­ca­zio­ni HTML5 e Flash. Infatti il team di questa libreria lavora a stretto contatto con Adobe, per cui ci sono anche tool che ga­ran­ti­sco­no un fun­zio­na­men­to ideale della suite con i prodotti di Adobe.

Vantaggi Svantaggi
Librerie in­di­pen­den­ti Piccola community
Strumenti ag­giun­ti­vi
In­te­gra­zio­ne con Adobe Animate

Le librerie Ja­va­Script a confronto

jQuery jQuery UI Dojo Toolkit React Zepto CreateJS
Anno di rilascio 2006 2007 2005 2013 2010 2012
Main­tai­ner JS Foun­da­tion JS Foun­da­tion Dojo Foun­da­tion Facebook Thomas Fuchs gskinner.com
Licenza MIT MIT BSD/AFL MIT MIT MIT
Con­tri­bu­tors su GitHub ca. 270 ca. 300 ca. 100 ca. 1.100 ca. 180 ca. 40
Par­ti­co­la­ri­tà Libreria più co­no­sciu­ta At­ten­zio­ne par­ti­co­la­re per la GUI At­ten­zio­ne par­ti­co­la­re per le web app DOM virtuale Mi­ni­ma­li­sta In­te­gra­zio­ne con Adobe Animate

I framework Ja­va­Script più popolari

Esistono senza dubbio più librerie che framework Ja­va­Script. In par­ti­co­la­re questi ultimi sono mag­gior­men­te adatti per ap­pli­ca­zio­ni web complesse, quindi af­fi­dan­do­si ai concetti e ai comandi del framework scelto, gli svi­lup­pa­to­ri lavorano in modo molto più efficace.

AngularJS

Questo framework creato da Google dispone della più grande community tra i framework Ja­va­Script. Ana­lo­ga­men­te al suo con­cor­ren­te prin­ci­pa­le, la libreria React di Facebook, AngularJS serve per rea­liz­za­re Single Page Ap­pli­ca­tion, cioè web app co­sti­tui­te solo da un documento HTML. Grazie al modello MVVM (Model View ViewModel) possono essere svi­lup­pa­te delle ap­pli­ca­zio­ni che intendono rea­liz­za­re un’in­te­ra­zio­ne con gli utenti. AngularJS è un’ap­pli­ca­zio­ne lato client, che si basa su jQuery Lite, una variante compatta della famosa libreria Ja­va­Script jQuery. Una curiosità: i pro­dut­to­ri del framework Ja­va­Script lo clas­si­fi­ca­no piuttosto (in maniera semi-seria) come MVW, cioè Model-View-Whatever.

Vantaggi Svantaggi
Community molto grande So­sti­tui­to da Angular
Parte dello stack MEAN Difficile da usare ini­zial­men­te

Angular

Angular, chiamato a volte anche Angular 2, è il suc­ces­so­re di AngularJS, pensato sempre prin­ci­pal­men­te per lo sviluppo di Single Page Ap­pli­ca­tion. Tuttavia Google ha apportato molte modifiche radicali nella seconda versione: la dif­fe­ren­za maggiore è che per la pro­gram­ma­zio­ne non viene più uti­liz­za­to Ja­va­Script, ma Ty­pe­Script. Ciò no­no­stan­te non risulta nessuna li­mi­ta­zio­ne diretta per la pro­gram­ma­zio­ne JS, poiché il lin­guag­gio di pro­gram­ma­zio­ne di Microsoft si basa su Ja­va­Script e lo ha quindi in­cor­po­ra­to. Inoltre grazie ai mi­glio­ra­men­ti fatti risulta ora facile lo sviluppo delle ap­pli­ca­zio­ni su Angular partendo da diverse piat­ta­for­me (desktop, Mobile, tablet).

Vantaggi Svantaggi
Più pos­si­bi­li­tà grazie a Ty­pe­Script Difficile mi­gra­zio­ne da AngularJS a Angular
Sviluppo possibile su più piat­ta­for­me Ancora più difficile da uti­liz­za­re rispetto al suo pre­de­ces­so­re

Ember.js

Anche Ember.js è un framework lato client, uti­liz­za­to per rea­liz­za­re Single Page Ap­pli­ca­tion, ma con cui si possono generare anche ap­pli­ca­zio­ni per il desktop. Una dif­fe­ren­za con AngularJS è il fatto che i creatori di Ember.js coin­vol­go­no molto la community nel processo di sviluppo del framework e discutono pub­bli­ca­men­te insieme a loro le modifiche più si­gni­fi­ca­ti­ve apportate, prima di attuarle. Ember.js si definisce un framework con cui creare delle web app ambiziose, per questo si indirizza prima di tutto agli svi­lup­pa­to­ri che hanno già di­me­sti­chez­za nella creazione di ap­pli­ca­zio­ni web.

Vantaggi Svantaggi
Svi­lup­pa­to grazie alla community open source Molto im­pe­gna­ti­vo per i prin­ci­pian­ti
Si può uti­liz­za­re anche per le ap­pli­ca­zio­ni desktop

Vue.js

Anche Vue.js è un framework Ja­va­Script per lo sviluppo delle Single Page Ap­pli­ca­tion, che ricorda Angular e React. Gli svi­lup­pa­to­ri di questo progetto ambizioso e re­la­ti­va­men­te nuovo hanno creato Vue.js con l’intento di renderlo sin dall’inizio più facile per i prin­ci­pian­ti rispetto agli altri framework. Così è ad esempio possibile integrare i template nell’HTML. Inoltre Vue.js dovrebbe essere anche molto più fles­si­bi­le rispetto ad altri framework che man­ten­go­no so­li­ta­men­te un’im­po­sta­zio­ne rigida.

Vantaggi Svantaggi
Facile da uti­liz­za­re Poco complesso
Supporta HTML & CSS Piccola community rispetto agli altri framework
Pos­si­bi­li­tà di sviluppo fles­si­bi­li

Meteor

Meteor, chiamato a volte MeteorJS, è un framework JS par­ti­co­lar­men­te adatto per lo sviluppo su diverse piat­ta­for­me (in inglese “Cross Platform De­ve­lo­p­ment”). Consente agli svi­lup­pa­to­ri di creare con lo stesso codice sia ap­pli­ca­zio­ni web sia app per i di­spo­si­ti­vi mobili. Un altro vantaggio consiste nel fatto che le modifiche al codice possono essere inoltrate di­ret­ta­men­te ai client grazie al pro­prie­ta­rio Di­stri­bu­ted Data Protocol (DDP). A partire dal framework gratuito i pro­dut­to­ri di Meteor offrono anche Galaxy, una piat­ta­for­ma a pagamento. Gli svi­lup­pa­to­ri possono uti­liz­za­re il servizio cloud per pub­bli­ca­re e gestire i propri progetti. Questo framework Ja­va­Script funziona su una base Node.js ed è quindi anche molto utile disporre di co­no­scen­ze sull’ambiente di sviluppo per lavorare con Meteor. Qui il back end e il front end si fondono senza dover cambiare il lin­guag­gio: si tratta di un concetto ri­vo­lu­zio­na­rio che però non si è ancora affermato come standard.

Vantaggi Svantaggi
Sviluppo possibile su più piat­ta­for­me Funziona solo con MongoDB e non con altri tipi di database
Piat­ta­for­ma di hosting Galaxy Ne­ces­sa­rio cam­bia­men­to del back end
Si può combinare con Angular, React e altri framework/librerie Problemi di per­for­man­ce e con i motori di ricerca

I framework Ja­va­Script a confronto

AngularJS Angular Ember.js Vue.js Meteor
Anno di rilascio 2009 2016 2011 2014 2012
Main­tai­ner Google Google Ember Core Team Evan You Meteor De­ve­lo­p­ment Group
Licenza MIT MIT MIT MIT MIT
Con­tri­bu­tors su GitHub ca. 1.600 ca. 570 ca. 700 ca. 700 ca. 370
Ar­chi­tet­tu­ra MVVM/MVW MVC MVVM MVVM MVVM
Par­ti­co­la­ri­tà Uti­liz­za­bi­le anche per app per i di­spo­si­ti­vi mobili e desktop Uti­liz­za­bi­le anche per app per i di­spo­si­ti­vi mobili e desktop Uti­liz­za­bi­le anche per ap­pli­ca­zio­ni per il desktop Facile da uti­liz­za­re Combina back end e front end

Strumenti utili per diversi scopi

Framework e librerie possono essere dei validi aiuti per al­leg­ge­ri­re il lavoro con Ja­va­Script, anche se quelli pre­sen­ta­ti qui sono solo una selezione tra i molti strumenti di­spo­ni­bi­li. Per in­for­mar­si sugli altri framework, librerie e plug-in Ja­va­Script, si consiglia di con­sul­ta­re GitHub e il sito www.ja­va­scrip­ting.com, dove potete trovare le esten­sio­ni Ja­va­Script più adatte ai diversi scopi.

Vai al menu prin­ci­pa­le