In più di un occasione negli ultimi anni mi sono dovuto confrontare sulla discussione se sia meglio usare PHP o .Net per il web.
Su internet si leggono moltissime critiche e moltissimi luoghi comuni (che sono per la maggior parte sbagliati) verso la tecnologia .NET dovuti soprattutto a prese di posizione ideologiche o ad ignoranza.
Per prima cosa bisogna fare chiarezza e spiegare (anche a chi si reputa un esperto) che per fare un confronto tra due elementi bisogna che siano simili, ma confrontare PHP e .NET è come confrontare le mele con le pere.
Chi pensa a .NET per il web pensa ad un linguaggio di script simile al suo predecessore ASP ma questo non è vero: Asp.NET non è un linguaggio di programmazione ma una tecnologia basta sul .NET Framework della Microsoft. Questo significa che applicazioni e siti web che utilizzano tecnologia .NET possono essere scritti in linguaggi differenti (Visual Basic .NET , C# , J#, e molti altri) e compilati!
Php è, invece, linguaggio script dove bastano poche righe in un file di testo ed avremo creato una routine e realizzato un "programma".
Chiarita questa differenza che ci spiega perché non è possibile un confronto esatto tra le due metodologie di sviluppo possiamo adesso sfatare i luoghi comuni.
Costi.
Una delle prime cose che un appassionato di PHP fa notare è che PHP è gratis mentre .NET è a pagamento. Nulla di più sbagliato!
Microsoft ha messo a disposizione prima visual studio express edition e poi la sua evoluzione visual studio 2017 che nella versione Comunity è, come il suo predecessore, completamente gratuito (per l'istallazione offline di visual studio 2017 vedere https://www.filoweb.it/tutorial/6-Installazione-offline-di-Visual-Studio-2017 ).Visual Studio 2017, inoltre, tramite una singola IDE fornisce la possibilità di sviluppare sia applicazioni web che per device mobili che per desktop.
È vero che .NET lavora su server windows, mentre PHP può lavorare tranquillamente su server linux ma, se si guardano i prezzi, la differenza tra un hosting windows o uno linux non è più così elevata, tanto che a volte un hosting windows costa meno di uno linux.
I maggiori siti web usano PHP.
I sostenitori di PHP si fanno forza nell'affermare che i maggiori siti web (Google, Facebook, Youtube, Amazon, ecc.) sono fatti in PHP.
Se non completamente una bufala questa è un'imprecisione: abbiamo detto che PHP è solamente un linguaggio di script, vi sembra quindi possibile che un sito come google, che è il più visitato al mondo (fonte alexa) possa limitarsi solamente ad un linguaggio di script per l'elaborazione? Certo che no! Al massimo usano una versione di PHP pre-compilato tramite una virtual machine JIT (HHVM).
Ed infatti Google, come linguaggio di programmazione, usa un mix di C, C++, Go, Java, Python e PHP (HHVM). Così come anche Facebook (Hack, PHP (HHVM), Python, C++, Java, Erlang, D, XHP, Haskell) e Youtube (C, C++, Python, Java, Go), mentre Amazon preferisce stare sul classico utilizzando Java, C++, Perl.
Quindi è vero che usano PHP che, però, non è l'unico linguaggio utilizzato.
Per quanto riguarda soluzioni enterprise vediamo poi che le maggiori aziende nel settore usano tecnologia .NET per integrare i loro servizi come nel caso di Office 360, Visual studio, Salesforce.com, Washingtonpost (Php e .NET), GoDaddy, e molti altri.
PHP è più usato
Questo è vero. Secondo un indagine del 2017 il 57% dei siti web usano PHP contro solamente il 34% di quelli che usano .NET.
I motivi di questa differenza sono molti, prima di tutto la difficoltà di .NET quando si inizia e la convinzione che per usare .NET siano necessari notevoli investimenti.
PHP è più simile al C++ o al Java
Abbiamo detto che .NET usa diversi linguaggi per interagire con il frameworks proprietario tra i quali c# (che è il linguaggio più usato per .NET).
C#, pur profondamente diverso da c++ risulta molto più simile a quest'ultimo di quanto lo potrà mai essere PHP.
Ricordiamo in questa sede, per esempio, che la sintassi di base del C# è spesso molto simile o identica a quella dei linguaggi C, C++ e Java, come C++ è un linguaggio orientato ad oggetti e le specifiche sono di regola raggruppate in metodi (funzioni), i metodi sono raggruppati in classi, e le classi sono raggruppate nei namespace.
PHP è open source e compatibile con diversi sistemi operativi
Ecco un altro luogo comune che deve essere sfatato. Dal 2015 esiste il progetto MONO, ovvero un progetto per creare una serie di strumenti compatibili con il frameworks .NET che comprendono un compilatore C# e il CLR (la macchina virtuale e le librerie standard .NET).
Mono è inoltre compatibile con Linux, MacOS, Sun Solaris, BSD, Windows e molti altri sistemi operativi.
Il Codice PHP può essere editato con un normale editor di testo .NET no.
Sebbene usare .NET senza Visual studio sia difficile questo non vuol dire che sia impossibile. Per editare codici .NET si possono usare molti editor di testo: oltre a visual studio, microsoft, mette a disposizione Visual Studio Code (ad esempio) oppure posso sempre usare il buon vecchio Notepad++
PHP è più scalabile di .NET
Questo non è assolutamente vero: sia PHP che .NET hanno una grande scalabilità, al massimo è la capacità di un programmatore a decretare la più o meno scalabilità di un progetto.
Chi usa principalmente PHP trova più facilmente da "scopiazzare" codici o parti di codici, ma questo non vuol dire essere in grado di programmare un sito web moderno.
PHP è più semplice e facile da imparare
Questo sarebbe vero se .NET fosse un linguaggio di programmazione ma, come abbiamo più volte ripetuto, non lo è. Si può quindi scegliere tra diversi linguaggi a seconda delle proprie capacità e, sicuramente, usare VB.NET è molto più semplice di PHP.
D'altronde la semplicità non è sinonimo di buone performance o qualità di un linguaggio: il LOGO è un linguaggio semplicissimo (si usa per insegnare a programmare ai bambini delle elementari), ma nessuno si sognerebbe mai di fare un programma gestionale in logo oggigiorno!
Questi sono solamente alcuni dei luoghi comuni che vengono proposti da chi discute se sia meglio PHP o .NET. Noi ribadiamo invece che un confronto tra i due non è assolutamente possibile trattandosi di tecnologie estremamente diverse.
Quasi tutte le ritrosie ad usare una tecnologia come .NET da parte di chi sviluppa siti web sono dovute a falsi luoghi comuni o prese di posizione ideologiche e soggettive ( la più comune è che si tratta di un prodotto microsoft), ma poco su punti di vista oggettivi.
Certo potrebbe sembrare assurdo usare una tecnologia potente come quella di .NET per sviluppare un sito web del piccolo negozio di frutta e verdura sotto casa, ma per progetti più complessi non è una soluzione da sottovalutare e, visto che è ottimale per soluzioni enterprise, può tranquillamente essere ottima anche per piccole e medie aziende come agenzie immobiliari, studi professionali, liberi professionisti e tutti coloro che necessitano di qualcosa di più di un semplice sito web.
Quindi la vera domanda non è se PHP sia migliore di .NET o vice versa ma, bensì, quale tecnologia è più adatta alle mie necessità attuali e future?
NOTE FINALI: Lista di alcuni siti web che usano la tecnologia .NET: StackOverflow, Stackexchange.com, Bing.com, Microsoft, office.com, W3Schools, codeproject.com, Dell, University of Essex (ww.essex.ac.uk), Visual Studio, Cannon, Brother, Marketwatch, Washingtonpost.com, GoDaddy, diply.com (1 miliardo di visualizzazioni video mensili, tra i primi 10 lifestyle su comscore), Salesforce.com (una delle società più valutate di cloud computing statunitense), Careercruising.com ( +5 milioni di utenti, 15,784 posizionamento globale dati Alexa) , Nasdaq.com, Remax.com, Epson.com, Hp.com (.Net, Php, Java), Mazda.it, ilsole24ore.com (.net, Php, Java), usatoday.com