Cos’è Node.js?
Introduzione a Javascript lato server

Tempo di lettura: 4 minuti
Spiegazione pratica di come funziona Node.js

Quando si sente parlare di Node.js le domande più comuni sono:

  • Perché agli sviluppatori web piace così tanto Node.js?
  • È basato su Javascript? Ma Javascript non è usato solo per aggiungere dinamicità alle pagina web?
  • Node.js è realmente così veloce?
  • È una tecnologia “matura”?
  • Da chi viene usato (quali aziende) e per fare cosa?
  • E io, per cosa posso usarlo?

Se anche tu ti sei posto una o più di queste domande, sei nel sito giusto! 🙂

Dalla “vecchia scuola” Javascript a Node.js

Magari l’espressione “Javascript vecchia scuola” è un po’ esagerata, ma ha un fondo di verità.

Javascript per molto tempo ha avuto una cattiva reputazione, veniva considerato come “qualcosa di utile per aggiungere effetti dinamici ad una pagina web“.

Tuttavia, è a tutti gli effetti un linguaggio di programmazione tanto quanto C, Ruby, PHP e molti altri.

Ora Javascript si è evoluto!

Gli sviluppatori si stanno rendendo conto che questo linguaggio, che hanno ignorato e a volte persino disprezzato per tanto tempo, in realtà ha dato prova di grandi potenzialità. Javascript non è solo un piccolo linguaggio di serie B.

È vero, è diverso da Java, C e molti altri, ma non è mediocre e facile da usare come tutti hanno sempre creduto!

È un linguaggio potente e perfomante.

Javascript è stato creato nel 1995 (nell’era preistorica del computing, ci credi?), e da allora è maturato molto. Possiamo dire che ha attraversato tre frasi:

  1. Fase 1: Anni ’90
    Era l’era di Netscape e Internet Explorer 5.5. All’epoca i programmatori usavano il DHTML (Dynamic HTML). Javascript inizia ad essere usato per aggiungere piccoli effetti alle pagina web, ad esempio la visualizzazione di un’immagine al click di un pulsante.
  2. Fase 2: Nuovo millennio
    Nascono librerie come jQuery e Mootools, per facilitare la modifica del DOM (Document Object Model). È proprio questo l’uso più diffuso di Javascript, che ha maggiormente contribuito alla sua cattiva fama.
  3. Fase 3: 2010
    Javascript entra in una nuova era! Google cambia le sorti dell’intero linguaggio: lancia Google Chrome. Questo nuovo browser ha al suo interno l’interprete Javascript più performante di sempre: il motore V8, che ha notevolmente aumentato la velocità di esecuzione del codice. Grazie a questo, seguirono strumenti come Node.js, così come molte librerie con estensione .js: Backbone.js, Ember.js, Meteor.js. Javascript rinasce più sofisticato di quanto non sia mai stato prima.

"L'evoluzione

Piccola precisazione: jQuery non è morto e non significa che non debba più essere usato (mentre, Netscape è veramente morto!). I nuovi strumenti Javascript (come Node.js) lavorano in modo diverso da jQuery e simili, ciò non esclude che possano essere usati assieme.

Cosa possiamo fare effettivamente con Node.js?

Node.js consente di utilizzare il linguaggio Javascript sul server, permettendo così di scrivere Javascript al di fuori del browser (lato client)! Ha tutto il potere di Javascript e ci offre un modo completamente nuovo di sviluppare siti web dinamici.

Vediamo ora in dettaglio come funziona.

Node.js: server-side Javascript

Fino al 2010,  l’unico modo per usare Javascript era lato client (cioè la parte eseguita nel computer dell’utente). Ti spiego meglio: quando visiti un qualsiasi sito web, il tuo browser (Firefox, Chrome, IE, ecc.) esegue il codice Javascript presente nella pagina, e attiva le azioni dinamiche (ad esempio cosa fare al click su un bottone).

Linguaggi backend e Javascript lato client
Linguaggi backend e Javascript lato client

Cos’è cambiato con l’arrivo di Node.js?

Lato client non è cambiato niente, possiamo ancora usare Javascript per manipolare pagine HTML.

Lato server, invece, è cambiato tutto! Per la prima volta si può utilizzare Javascript, grazie a Node.js, per sostituire linguaggi come PHP, Java, ecc, da sempre usati a quello scopo.

"Arriva

Cos’ha di diverso Node.js? E perchè usa proprio Javascript?

La principale differenza con gli altri linguaggi sta nel fatto che Node, come Javascript, è basato sugli eventi, ed è proprio da qui che trae tutta la sua potenza e velocità. Questo “nuovo” approccio ha cambiato l’intero modo di scrivere le applicazioni web!

Con Node.js, è possibile creare applicazioni veloci, come ad esempio:

  • Un chat server
  • Un sistema di upload performante
  • Più in generale, ogni applicazione che deve rispondere a numerose richieste in modo rapido ed efficiente, in tempo reale

   Node.js non nè un framework nè un linguaggio. Ma allora cos’è? È una tecnologia, basata su Javascript, e ci permette di eseguire delle funzioni sul server. Se volessimo fare un paragone potremmo dire che per certi versi è più simile a C, in quanto sono entrambi di basso livello, che a PHP o Java.

Questo è il motivo per cui è abbastanza difficile da padroneggiare.

So che questo potrebbe spaventarti, ma in realtà gli sviluppatori Node.js hanno creato degli appositi strumenti per facilitare lo sviluppo web. Parliamo di framework come Express, Hapi, Sails. Questi framework permettono di evitare compiti ripetitivi, imposti dalla natura a basso livello di Node.js, ma risultano comunque più complessi da usare rispetto a linguaggi come PHP.

Javascript non è un “vero e proprio” linguaggio orientato agli oggetti, come Java, Ruby o Python. Per scrivere un’applicazione in Node.js è necessaria un’impostazione mentale completamente diversa.

Lo so, sapere che devi cambiare il tuo modo di ragionare fa paura, ma in realtà una volta che inizi a capire questa tecnologia ti sentirai come se avessi acquisito un superpotere!

Ecco perché così tanti sviluppatori sono entusiasti di Node.js!


L’articolo che hai appena letto fa parte di una lunga serie di guide e tutorial tradotte in italiano e distribuite gratuitamente. Questo articolo si basa sui testi inglesi di Mathieu Nebra (Ultra fast applications using Node.js), con licenza CC BY-NC-SA.