Siti web

NodeJs vs PHP - Qual è la migliore tecnologia per sviluppare una piattaforma o un’app?

Era una domenica pomeriggio e stavo cercando l’ispirazione per un nuovo articolo da scrivere, leggevo alcuni articoli sulla programmazione per poter sviluppare una piattaforma web per un cliente. Googlando un po’ mi sono ritrovato a leggere questo articolo su un forum di programmazione, con un titolo che mi ha suscitato parecchio interesse: “Qual è il miglior linguaggio per creare un back-end di un sito? Node JS o PHP?”.

Incuriosito dall’argomento ho aperto il link, ho trovato degli spunti davvero interessanti e ho trovato l’ispirazione giusta per scriverci su.

Se pensate che il NodeJs sia migliore del PHP, la risposta è “dipende dal suo utilizzo”, ma andiamo ad analizzare i motivi principali tra poco.

NodeJs vs PHP – Che il combattimento abbia inizio!

 

Ho deciso di elencarti le caratteristiche di entrambe le tecnologie così da costruire basi più solide alle piattaforme che noi impavidi sviluppatori andremo a realizzare 🙂

 

NodeJs:

  • NodeJs è un javascript runtime basato sul motore V8 di Google Chrome (link: https://v8.dev/);
  • è un framework composto da moduli scritti (di solito) nel medesimo linguaggio, e quelli principali, fungono da emulatore webserver con il quale codificano ed eseguono le istruzioni impostando la porta del server. Il codice sorgente, per esempio, funzionerà solo se la porta in ascolto è impostata nel codice (es: localhost:8080);
  • funziona molto bene per fare richieste ad API single-page, perfetto con framework come Angular oppure React;
  • è possibile installare tantissimi moduli per potenziare il framework e che si possono trovare nei canali per sviluppatori come GitHub, oppure con i pacchetti npm;
  • è ottimo per gestire, grazie alle API di supporto, richieste di connessioni molto elevate;
  • siccome i suoi potenti moduli emulano un webserver assestante, è perfetto per creare app con Cordova/ Firebase oppure applicazioni desktop con Electron.

Questo è un semplice esempio scritto in Node, tramite il modulo loader  require js, tramite la funzione require e possibile importare nei progetti i moduli di NodeJs con molta semplicità. L'esempio descritto fa in modo che node funge da webserver (Si serve di Apache) e dai ordine al server di scrivere su un file html chiamato demof.html e gli stampa il contenuto di un parametro get.

[js]

var http = require('http');
var file = require('fs');
var url = require('url');

http.createServer(function (req, res) {

file.readFile('demof.html', function (err, data) {

var part = url.parse(req.url, true).query;

res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(data);
res.end('Url attivato : '+part.x);

});

}).listen(8080);

[/js]

Passiamo invece al suo acerrimo e “vetusto” nemico PHP, che da un bel po’ di tempo si è aggiornato alla versione 7:

 

  • è un linguaggio che si è diffuso negli anni che fa da supporto per la creazione di semplici portali fino allo sviluppo di piattaforme complesse. Grazie al PHP sono nati CMS molto famosi quali WordPress, adatto alla creazione di un blog e non solo, Prestashop e Magento, che nascono per creare un punto vendita online;
  • il PHP è supportato da tutti i servizi che offrono spazio hosting, la sua fruizione è disponibile anche gratuitamente con domini di terzo livello (come Altervista);
  • il linguaggio standard è orientato agli oggetti, inoltre è molto semplice e incline all’apprendimento anche per i neofiti;
  • con l’arrivo della versione 7 sono state aggiunte nuove funzionalità, come l’operatore elvis, funzioni anonime, la correzione di alcuni problemi di sicurezza e l’aumento delle performance.

 

Questo sono alcune delle caratteristiche principali dei due titani 🙂 Ma vediamo quando usare queste due tecnologie.

 

Pro e contro NodeJs

 

Contro

1) Rispetto al suo “avversario” è meno diffuso, NodeJs ha bisogno di essere installato nel server inoltre, ci vuole almeno un accesso tramite SSH. L’accesso a questa funzionalità è esclusivamente accessibile con un acquisto di un server. Se non sei molto esperto di Javascript e di NodeJs, può capitare che la macchina ospitante vada in crash perché il framework per poter funzionare ha bisogno di molta memoria e, se nel codice sorgente non si tiene a mente questa cosa, si perde tempo a cercare di fare il debugging sul progetto.

 

2) Non ti consiglio di usarlo se devi creare estensioni di qualche CMS come WordPress o Joomla!, meglio ricorrere al loro linguaggio nativo come il PHP.

 

3) Anche nel caso in cui tu debba sviluppare applicazioni web che non generano molto traffico, ti consiglio di non usarlo per il semplice motivo che spreca molta memoria e prestazioni.

 

Pro

1) NodeJs è perfetto per creare una web application mobile con piattaforme come Cordova e Firebase. IDE, Integrated Development Environment, come Visual Studio, hanno integrato in Cordova anche NodeJS, che può perfettamente sostituire il PHP. Stessa cosa anche con web application desktop con il framework Electron.

 

2) NodeJs è ottimo se devi creare applicazioni Single page, magari accostandolo con React o Angular.

 

3) In NodeJs ci sono moduli già preinstallati che possono accedere e gestire un database con i linguaggi più popolari come MySQL, NoSQL ODBC e altro ancora, in modo da ricavare in modo sincrono i dati caricati all’interno delle tabelle. Questa potenzialità viene sprigionata se la macchina ospitante ha una buona configurazione, sia dal punto di vista software che hardware.

 

 

Pro e contro PHP

 

Contro

1) PHP non è molto adatto per lo sviluppo di web app e non è consigliabile per le nuove tecnologie di sviluppo che ti ho citato prima, infatti per poter riportare dei dati all’interno di un’app ha bisogno della tecnologia AJAX come supporto di base che restituisce i dati in modo asincrono.

 

2) Il linguaggio PHP ha bisogno di un interprete per poter funzionare correttamente, mentre a volte è necessario anche smanettare nei file di configurazione per dare il meglio di sé.

 

3) PHP non è adatto alla creazione di portali single page, perché ha sempre la necessità di fare un refresh alla pagina; per questo motivo, è molto meglio non creare app con schermo ad intermittenza ahahaha!

 

Pro

1) Puoi creare grandi e piccoli gestori di contenuti in modo molto semplice, esiste una grande comunità di sviluppatori PHP che creano librerie pronte all’uso, come TPC/PDF che serve a tradurre l’output HTML in PDF.

 

2) PHP è ottimo per creare contenuti estremamente dinamici, dato che l’interprete una volta tradotto il codice, riporta l’output del sorgente in HTML puro.

 

3) Nel PHP le librerie, come il PDO, si integrano perfettamente a tutti i linguaggi per costruire i database, questo dà un’ottima marcia per interagire anche con altri linguaggi come il Java, perché supporta ODBC.

Questo pezzo di codice che vi mostro in basso fa la stessa cosa dell' esempio mostrato con node js, ma in questo caso non troveremo nessuna funzione che crea web server, visto che il php sul server ci gira.

[php]

[/php]

Conclusioni

Da come hai potuto vedere NodeJs è davvero insostituibile, qui la tecnologia più all’avanguardia viene utilizzata per creare web app sia desktop che mobile.

 

Il buon vecchio PHP invece, rimane il paladino di webserver come Apache e Nginx (che per la loro diffusione occupano l’80% della rete).

In conclusione sia per NodeJs che per PHP il risultato è uno: 0 a 0 palla al centro.

Da H4ck3rM4n è tutto, ci vediamo alla prossima!

Leave a Comment
Share
Pubblicato da

Recent Posts

I dieci migliori siti di risorse vettoriali gratuite per i tuoi progetti

I dieci migliori siti di risorse vettoriali gratuite per i tuoi progetti È da tanto…

14 Dicembre 2018

SXO Search Experience Optimization, l’evoluzione della SEO

La SEO è un argomento trito e ritrito (se sei stanco delle definizioni alla wikipedia…

11 Ottobre 2018

Quale font usare per il tuo progetto?

Non sai quale font usare per il tuo progetto? Niente paura! In un mare infinito…

21 Settembre 2018

I social media sono sempre esistiti

I social media sono sempre esistiti: ovvero l'articolo a cui ho lavorato quest’estate perché mi…

4 Settembre 2018

ElevenDots & Miss Market: un incontro “scaramantico”

7 consigli per un investitore scaramantico nasce dall’incontro di menti un po’ fuori dall’ordinario che si…

5 Luglio 2018

JQuery – l’inizio di un lento declino

Per tanto tempo, dal 2006 in poi, il JavaScript (anche detto JS) divenne un linguaggio…

25 Giugno 2018

Questo sito usa i cookie.