Linguaggi lato server: Php vs Asp.net

Questo è sicuramente uno degli argomenti più discussi e controversi del web, che interessa molto ai neofiti, ma che non manca di coinvolgere i fan di uno o dell'altro linguaggio. Per quanto mi riguarda non credo che tifare per l'uno o per l'altro possa rappresentare un atteggiamento saggio, credo piuttosto che ognuno dei due linguaggi abbia i suoi punti di eccellenza e che quindi si possano definire dei contesti ideali.

Vorrei provare a tracciare delle distinzioni seguendo differenti punti di vista, il primo fra tutti è quello che riguarda un gran numero di persone che si affacciano al mondo web, cioè "quelli che fanno siti internet" (niente a che fare con web developer o designer, o comunque esperti di informatica). In questo caso credo che php possa ritenersi la scelta ideale, se non altro per la stragrande quantità di snippet di codice, classi o persino interi siti disponibili su internet. Un elemento importante però da definire è l'ambiente di sviluppo, che con php può rappresentare una vera e propria sfida. Essendo, infatti, opensource, php non ha un IDE ufficiale, ma ne esistono tanti (forse troppi) e sta ad ognuno poi trovare la sua configurazione più comoda, la mia è rappresentata da un editor (Komodo Edit) più un ambiente per il debug (easyphp). Ma la forza di php è nella facilità con cui chiunque può arricchire i propri siti con funzionalità più o meno importanti, basta creare una pagina html con un qualsiasi editor visuale e non appena contenti del risultato, inserirci del codice php come ad esempio: <?php echo date("l w F Y"); ?> che visulizza la data di oggi. Con asp.net tutto ciò risulterebbe un po' più complicato, soprattutto se consideriamo che i linguaggi con cui andremo a scrivere il nostro codice, sono linguaggi fortemente oop che richiedono quindi un minimo di esperienza di programmazione. C'è da dire però che asp.net ha dalla sua un ide tra i migliori in assoluto della quale esiste anche una versione gratuita (vwd). Riassumerei quindi questa prima parte con una semplice definizione : Php è più semplice da usare e da imparare rispetto ad Asp.net.

Il secondo punto di vista riguarda i team di sviluppo, che necessitano quindi di metodologie di sviluppo cooperativo. Php ha incluso solo nella sua ultima versione (5) la possibilità di programmare ad oggetti, questo credo rappresenti già un grosso deficit, visto che il 90% del codice su internet non è oop, e che soprattutto il linguaggio è stato concepito con una tipizzazione debole, vi posso assicurare, per chi non lo avesse già provato, che è molto frustrante ritrovarsi in una variabile in oggetto diverso da quello che ci espetteremmo, oppure, ancora peggio, il valore null causato da un errore di battitura mentre richiamavamo la variabile. In questo contesto chi veramente può dare il massimo di se è asp.net, che permette di progettare applicazioni enormi sfruttando le astrazioni possibili con i linguaggi orientati ad oggetti, che ci permettono di suddividere il lavoro in maniera ottimale. In oltre, come già detto prima, l'IDE fornisce grandi vantaggi, come ad esempio la definizione facilitata di riferimenti a web service. Se dovessimo riassumere ancor di più il concetto direi che Asp.net permette di sviluppare grandi applicazioni con più facilità rispetto a Php.

Dal punto di vista del designer, è importante che possa lavorare senza intralciare il lavoro degli sviluppatori o ancora meglio a prescindere se l'applicazione sia stata già sviluppata o meno. In questo caso Php non offre nessun argomentazione speciale se non l'utilizzo dei css propri dell'html, semplicemente, quindi, con Php si utilizzano le stesse tecniche (o quasi) che si utilizzano con le pagine html. Asp.net offre la possibilità di definire dei temi, che non avrebbero niente di particolarmente eccezionale, se non fosse per gli skin, che permettono di specificare le proprietà dei controlli server, e l'estrema facilità con cui una pagina può cambiar aspetto anche durante l'esecuzione, tutto ciò naturalmente includendo i fogli di stile. Morale : Qualche sforzo in più è stato fatto con asp.net, ma entrambi sono sostanzialmente simili.

Purtroppo non è possibile specificare quì quali sono tutte le caratteristiche di entrambi i linguaggi, sicuramente per chi è agli inizi, consiglierei il php data la sua semplicità e la quantità di materiale on-line, ma non potete considerarvi esperti se non li imparate entrambi. Quindi diffidate da chi afferma di sapere quale dei due sia il migliore, spesso certa gente è spinta più da ragioni politiche che altro, e se poi vi parla di prestazioni, le differenze sono ridicole, se proprio avete problemi di lentezza del sito provate a cambiare hosting (o a migliorare il codice :P ).

2 commenti:

  1. Ciao, mi chiamo Nunzio, io programmo in Php è senz'altro è più semplice della tecnologia Asp.net, come hai detto tu inizilmente, per quanto riguarda le prestazioni direi che il Php al contrario di asp.net è interpretato, e quindi teoricamente dovrebbe fornire prestazioni leggermente inferiori, sbaglio?

    RispondiElimina
  2. Ciao Nunzio, il problema di asp.net però sta nell'inizializzazione di tutte le classi necessarie ad eseguire una pagina: providers vari, controlli server, temi, ecc. per cui negli scenari meno complessi a parità di risultato php esegue meno istruzioni di asp.net, ciò fa si che impieghi meno tempo. Comunque le differenze rimangono nell'ordine di pochi millisecondi. Va detto però che in caso di calcoli intensi (un grosso ciclo for per esempio) un millisecondo moltiplicato per il numero di iterazioni (diciamo 10.000) diventa un tempo inammissibile (10sec.) e la scelta di un linguaggio compilato appare indiscutibile. Per cui come ho già detto dipende tutto delle necessità. Ciao

    RispondiElimina