Le nostre competenze a vostra disposizione sul blog
Amiamo il nostro lavoro e vogliamo condividerlo con voi! Tenetevi aggiornati su tutte le news e le tecnologie con le quali lavoriamo e di cui potreste avere bisogno! Seguite il nostro blog.
×

Error message

The spam filter installed on this site is currently unavailable. Per site policy, we are unable to accept new submissions until that problem is resolved. Please try resubmitting the form in a couple of minutes.
enrico.gramellini's picture

Tra le tecnologie emergenti nel mondo dell'informatica, negli ultimi anni Node.js ha riscosso un notevole successo, una piattaforma open-source cross-platform per lo sviluppo di sistemi informatici orientata all'ottimizzazione delle performance e che offre allo sviluppatore strumenti che ne semplificano al massimo la realizzazione.

Node.js nasce come piattaforma ideale per la realizzazione di applicazioni web, in quanto si basa su linguaggio JavaScript, uno dei più diffusi tra le tecnologie web attuali, ma soprattutto ne sfrutta la sua natura di linguaggio basato sul modello ad eventi, perfettamente adatto alla programmazione asincrona. Questo aspetto è alla base dell'innovazione apportata da Node.js in quanto i cambiamenti avvenuti nel web hanno affermato sempre di più come protagonista la componente di interattività presente all'interno dei sistemi informatici moderni. Ottimizzare le performance di quest'ultimi, significa quindi nella maggior parte dei casi scalare al massimo ogni tipo di interattività eseguita da parte degli attori del sistema.

Prima di Node.js, le classiche tecnologie utilizzate per realizzare questi sistemi come Java, PHP, ecc. permettevano un'ottimizzazione della performance basata sul modello multi-thread. Node.js invece propone un modello event-based che si differenzia principalmente per la gestione asincrona delle operazioni di I/O. Nel modello multi-thread queste operazioni vengono invece gestite in modo sincrono; tale modello è affiancato dall'event-loop, il quale si occupa di gestire task corrispondenti alle operazioni asincrone sfruttando un pool di thread che ne ottimizza le performance.

event-loop_0.png

Il tutto è offerto a livello di piattaforma e lo sviluppatore potrà scrivere il codice sorgente del proprio sistema senza preoccuparsi di tale gestione, a differenza invece del modello thread-based che, gestendo le operazioni di I/O in modo bloccante, obbliga lo sviluppatore ad utilizzare tecniche di programmazione multi-threading delicate, complesse e dispendiose in termini di memoria.

JavaScript oltre che essere per sua natura un linguaggio perfettamente idoneo per questo paradigma di programmazione, è anche un linguaggio molto diffuso nel mondo dello sviluppo web. Node.js ha quindi riscosso fin da subito un notevole successo grazie all'azzeramento quasi totale della curva di apprendimento delle tecnologie in gioco da parte di questo target di sviluppatori. Questi ultimi di conseguenza hanno avuto la possibilità di apprendere, senza particolari sforzi, una tecnologia che permette la realizzazione anche del back-end di un sistema web.

Grazie a Node.js anche JavaScript ha potuto sfatare il tabù dello sviluppo server-side, in quanto in passato era già stato proposto come linguaggio per questo strato software, ma le tecnologie avversarie avevano già vinto sulla concorrenza sfruttando soprattutto gli aspetti di performance e di solidità del linguaggio. Con il passare degli anni JavaScript è cresciuto in entrambi questi aspetti, sfruttando la sua natura per proporsi come valida soluzione alternativa.

Un'altro aspetto di elevata importanza della piattaforma Node.js è la modularità, un semplice meccanismo che permette di aggiungere funzionalità alla piattaforma in base alle esigenze del sistema software da realizzare.
L'ampia comunità di sviluppo che ruota attorno al mondo JavaScript ha permesso in poco tempo la nascita di numerosi moduli open-source al supporto degli sviluppatori. Questo aspetto ha giocato un ruolo fondamentale sia per la diffusione della tecnologia, ma soprattutto per sottolineare quanto questa caratteristica faccia di Node.js una piattaforma ideale per i sistemi software moderni.

Aggiungi un commento

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.