PHP vs Node.js

PHP e Node.js sono le due tecnologie server side più utilizzate in assoluto. Detto ciò, va notato che le differenze tra le due sono diverse. Mentre PHP è un linguaggio di programmazione, Node.js è una runtime di JavaScript Open source multipiattaforma.

 

 

 

 

Application Domain

Per quelle applicazioni caratterizzate da sporadiche interazioni tra client e server è da preferire PHP al posto di Node.js. L’esatto contrario è vero quando l’interazione client-server è costante; In questi casi il linguaggio preferito è Node.js.

Di seguito alcuni possibili scenari che prevedono l’uso di PHP:

  • Applicazioni che utilizzano lo stack LAMP per lo sviluppo di API.
  • CMS (Drupal e WordPress utilizzano il PHP).
  • Applicazioni che fanno un uso intensivo della CPU come, ad esempio, applicazioni meteorologiche o scientifiche.

Casi in cui Node.js è la soluzione preferita per alcuni sviluppatori:

  • Applicazioni a pagina singola.
  • Applicazioni server side caratterizzate da elevata scalabilità.
  • Applicazioni real time come, ad esempio, applicazioni di video streaming e chat.

 

 

Velocità di esecuzione

Esistono due modelli di programmazione:

  • Sincrono: Il codice viene eseguito riga per riga. Il programma non può proseguire fino a quando non arriva la risposta dal server.
  • Asincrono: È possibile passare alle righe successive anche se quelle precedenti sono ancora in esecuzione.

 

Il PHP, fatta eccezione per alcune API, è per lo più sincrono. Se la riga di codice precedente impiega del tempo per essere eseguita il resto del codice deve attendere il completamento dell’azione. È facile intuire che tale modalità allunga i tempi di esecuzione.

Node.js viene eseguito in modalità asincrona. Non è quindi necessario attendere l’esecuzione di una porzione di codice per poter andare avanti. I tempi di esecuzione sono quindi molto più veloci rispetto a PHP. Il contro della modalità asincrona è che un numero elevato di funzioni rischia di creare quello che viene definito callback hell.  Il modello async/await consente di risolvere problematiche di questo tipo.

 

 

Database

PHP fa uso, nella maggior parte dei casi, di database relazionali tradizionali come MariaDB, MySQL e PostgreSQL. Poco frequente l’uso di database NoSQL.

Frequente è invece l’uso di database NoSQL nelle applicazioni Node.js; CouchDB e MongoDB ad esempio.

 

 

Framework

Node.js utilizza framework come Express, Derby e Meteor. PHP può contare su una scelta molto più vasta di framework per lo sviluppo di applicazioni robuste e sicure.

 

 

Moduli

I moduli installabili su PHP sono

  • PEAR
  • Composer

Node.js dispone del pacchetto NPM preinstallato.

Con PHP i moduli vanno installati all’occorrenza e non vengono preinstallati come avviene per Node.js

You may also like