Stai pensando a questo dal lato sbagliato. Cito:
I see that ASP.NET development productivity is higher [...], it still doesn't attract developers as much as PHP.
Ma stai guardando annunci di lavoro. Gli annunci di lavoro non sono scritti da sviluppatori appassionati, ma dagli uomini d'affari che vogliono che le cose vengano fatte al minor costo, non importa se la lingua fa schifo come PHP.
Dalla loro posizione (immagina che sia scritto in grassetto Arial Black 200), PHP ha molti vantaggi su ASP.NET:
-
ASP.NET è Microsoft. Microsoft è malvagio. Quindi ASP.NET è malvagio. Potrebbe non essere vero in alcuni paesi, specialmente negli Stati Uniti. È molto vero, d'altra parte negli altri. In Francia, le aziende di piccole o medie dimensioni hanno una pessima opinione di Microsoft, e la maggior parte delle grandi aziende utilizza ASP.NET, a volte per scopi legacy.
-
ASP.NET è un prodotto proprietario. Non vuoi dipendere da un prodotto di un'azienda precisa. Ecco il problema Microsoft aveva ASP. Ha fatto schifo, ma è stato usato dalle aziende. Quindi Microsoft ha rilasciato ASP.NET e ASP diventa obsoleto. Oggi Microsoft rilascia ASP.NET MVC. Cosa accadrà a ASP.NET, considerato da molte persone troppo brutto rispetto a ASP.NET MVC?
-
ASP.NET può essere eseguito su Windows e ... beh, questo è tutto. PHP può essere eseguito ovunque, specialmente su Windows e Linux. Linux è gratuito. Il costo di Windows Server è così alto che nessuna piccola azienda può permetterselo sul proprio server. Non menziono nemmeno il prezzo del Microsoft SQL Server opzionale.
-
ASP.NET non può essere utilizzato su Apache, mentre Apache è il server più utilizzato e la maggior parte degli amministratori di sistema sa come amministrarlo. Certo, c'è Mono, ma è più una soluzione per geek, non per una persona che gestisce un'azienda.
-
L'hosting ASP.NET è leggermente più costoso, a causa del costo di Windows Server. Ma forse è solo un'impressione.
-
Gli sviluppatori ASP.NET non sono troppi, mentre ci sono molti programmatori PHP inesperti pronti a lavorare per il cibo. Se non hai bisogno di un sito web di alta qualità, il costo può essere ridotto ancora di più.
-
ASP.NET è compilato. Se ti dimentichi di dire nel tuo contratto che lo sviluppatore deve fornirti il codice sorgente, potresti trovarti solo con i binari. Cosa succede se si desidera cercare un altro sviluppatore per modificare il progetto in un secondo momento? In PHP, il codice sorgente potrebbe essere offuscato, ma non è la solita pratica.
-
ASP.NET non è ampiamente utilizzato. Anche nella realtà lo è, gli uomini d'affari non lo vedono troppo (di nuovo, deve essere falso negli Stati Uniti, ma è certamente vero in Francia e probabilmente in altri paesi nella stessa situazione). Uno dei siti Web più noti che utilizza ASP.NET MVC è Stack Exchange. Ma hai visto un uomo d'affari che sa di cosa si tratta? È molto facile convincere una persona a usare PHP. "Guarda, Facebook usa PHP, Wikipedia usa PHP, come può essere cattivo?" Gli uomini d'affari amano questi semplici argomenti e li ricordano molto meglio di "Sai che in realtà gli stessi sviluppatori di Facebook hanno affermato che il PHP fa schifo a causa delle sue scarse prestazioni?".
Oltre a questi punti, gli uomini d'affari hanno spesso strani motivi per scegliere PHP. Ad esempio, li sento spesso dire che "PHP è più sicuro" o "PHP è più veloce di ASP.NET perché non è compilato¹". Non sono mai riuscito a spiegargli perché è così e dove hanno sentito queste stupidaggini.
¹ In realtà questo proviene da alcuni siti web o forum confrontando PHP con ASP.NET e scritti da meno di persone competenti. Cito il primo link, perché a questo livello, è semplicemente ... sorprendente: "ASP.net è compilato in memoria in codice binario, quindi, quando ASP.net è usato per la codifica, è evidente che ci vuole tempo di elaborazione molto più lungo poiché i codici devono essere recuperati dalla memoria.Tuttavia, PHP non è compilato in memoria come è ASP.E 'interpretato in fase di esecuzione.Questo è il motivo per cui la codifica di PHP porta ad una migliore velocità ed efficienza. ".