Cos'é Node.js

Fino a pochi anni fa sembrava che non ci fossero alternative: la combinazione MySQL/PHP appariva come l'unica possibilità per sviluppare e gestire siti web. Ma a partire dal 2008 la situazione è cambiata radicalmente.

JavaScript va sul server

Node.js è un environment JavaScript basato sul motore V8, lo stesso usato da Google Chrome. Portando JavaScript sul server si sono anche rese disponibili anche alcune caratteristiche importanti di questo linguaggio.

La prima è l'essere asincrono. In PHP quando si effettua una query al database, l'esecuzione del codice si arresta fino a quando i risultati della query non sono stati restituiti.

Ciò significa che in quel momento PHP non può fare nient'altro che aspettare. Su siti con poco traffico questo problema non è evidente, ma su siti ad elevato traffico si verificano notevoli rallentamenti e spesso il sito va in stallo.

Solitamente per mitigare il problema il proprietario del sito è costretto ad investire cifre non trascurabili per migliorare la performance, acquistando ad esempio un server dedicato, modificando la configurazione del web server, sostituendo l'installazione di base di MySQL e aumentando le risorse a disposizione di PHP.

Il problema di fondo tuttavia resta: PHP è sincrono e funziona in modo sequenziale. Recentemente Facebook ha creato una sua versione di PHP, chiamata HHVM, che opera sulla modalità con cui viene eseguito il codice ma non sul design di base.

Node.js è asincrono. Il suo modello input/output è concepito per non bloccarsi. Quando Node.js effettua una query ad un database, può eseguire in parallelo altri task ed altre routine senza fermarsi.

Questo aspetto permette a chi ha un sito o un applicativo in Node.js di operare solo piccole modifiche e ottimizzazioni alla performance senza essere costretto ad effettuare scelte radicali come nel caso di PHP e MySQL.

Google ha scelto Node.js

Google ha deciso di investire in Node.js con la release 2 del suo popolare framework JavaScript Angular.

Il motivo è semplice: Node.js offre un maggior livello di coerenza e stabilità nel modo con cui i moduli delle app vengono gestiti internamente.

Google ha deciso di spingere verso una standardizzazione universale perché ci si è resi conto che oggi Node.js ha raggiunto quel livello di sviluppo e di maturità necessario a portare a termine questo tipo di processo.

L'uso di generatori di app da riga di comando è uno standard introdotto da Node.js, perfezionato dai suoi framework come ExpressJS e Sails.js e adottato da Google con angular-cli.

Questo permette di avere una struttura di base standard e universalmente compatibile su cui operare per poter sviluppare un sito o un'app.

Il futuro

Node.js è una tecnologia relativamente giovane e con ampi margini did sviluppo nell'immediato futuro. Investire in Node.js oggi significa uscire dal recinto di modelli di sviluppo sostanzialmente non più aggiornati nel design e abbracciare nuovi modelli già adottati da Google e da molti altri big del settore IT a livello internazionale.