Categorie
Guida a Node.JS

Introduzione a Node.js

Node.js è un framework che permette di realizzare server-side web application usando un linguaggio di programmazione che utilizza la stessa sintassi di JavaScript. Ciò significa che molte delle pagine Web dinamiche, solitamente realizzate con linguaggi di programmazione come ad esempio PHP, JSP o ASP, possono essere realizzate usando una sorta di JavaScript arricchito da funzionalità server side.

I vantaggi e la comodità di Node.js sono molteplici: il vantaggio più evidente è la possibilità di realizzare applicazioni server-side senza dover imparare linguaggi di programmazione “tradizionali”. Quasi ogni applicazione Web richiede almeno due tipi di competenze, se non addirittura tre. Partendo dal front-end abbiamo grafici e web designers, che si occupano della presentazione e del look & feel: di solito ciò richiede competenze di HTML, JavaScript, CSS, eccetera. La logica dell’applicazione viene invece sviluppata usando linguaggi di programmazione“tradizionali”, che possono essere PHP, Perl, Java, JSP, .NET ecc. Infine, in molti casi, è necessaria anche la figura di un esperto PL/SQL per ottimizzare l’accesso al database.

L’utilizzo di Node.js permette di unificare i primi due profili: le competenze di un web designer esperto di JavaScript possono essere applicate al framework, consentendo ad un’unica persona (o un unico team) di tenere d’occhio sia gli aspetti della presentazione, sia della business logic. Chiaramente ciò non vale per ogni scenario possibile, ma dipende dal contesto specifico del progetto. Considerando però che uno dei punti di forza di Node.js é la scalabilità del software, ne segue che in linea teorica il framework può essere applicato sia per piccoli progetti, sia per applicazioni enterprise.

Requisiti e tecnologia

Prima di iniziare a lavorare con Node.js vediamo quali sono le tecnologie che fungono da piattaforma al framework. Questa conoscenza non è necessaria quando affrontiamo problemi dettagliati, ovvero quando “smanettiamo” attorno al codice, ma è utile avere almeno una vaga idea delle tecnologie coinvolte. Il supporto e la longevità di un framework dipendono spesso dal successo delle tecnologie sulle quali il framework è edificato: conoscere la natura delle “fondamenta” permette di valutare in modo più preciso i vantaggi e gli svantaggi di un framework o libreria.

La prima tecnologia coinvolta è il motore JavaScript V8 di Google. V8 è un motore di interpretazione del codice JavaScript realizzato da Google, nato principalmente per far girare il codice JavaScript all’interno di Chrome. V8 è molto di più di un semplice motore JavaScript, perché permette di essere utilizzato anche in modalità stand alone. Ciò significa, ad esempio, che possiamo usare V8 per compilare del codice JavaScript in C++, ottenendo così un notevole guadagno in termini di performance. Se aggiungiamo poi il fatto che V8 è open source e che gira su tutti i principali sistemi operativi, capiamo subito che la scelta di edificare Node.js “sopra” V8 è una garanzia di sicurezza, portabilità e stabilità.

Un’altra tecnologia coinvolta è Socket.IO, una libreria che semplifica la gestione dei socket tra client e server, dove ovviamente per client si intende un browser Web. Lo scopo di Socket.IO ricorda un po’ le finalità di jQuery: offrire un livello di API di alto livello rispetto all’implementazione “manuale” dei Web socket. Ciò permette, ad esempio, di usare sempre le stesse API indipendentemente da qual è il sistema di trasporto effettivo. Usando Socket.IO non ci interessa se il trasporto utilizza Flash oppure i nuovi WebSocket: il nostro codice girerà allo stesso modo in entrambi i casi.

4 risposte su “Introduzione a Node.js”

Rispondi a Pasquale Villoresi Annulla risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.