Quali lingue sul lato server dovrebbero essere utilizzate per siti di informazione creati dall'utente come Facebook, SE, Blog, ecc.?
Quali lingue sul lato server dovrebbero essere utilizzate per siti di informazione creati dall'utente come Facebook, SE, Blog, ecc.?
Può essere qualsiasi lingua. Ma se dici PHP, ho alcuni punti -
Da migueldeicaza su Twitter:
Reddit sta vivendo alcuni problemi di dissonanza cognitiva rispetto a StackOverflow utilizzando 5 server .NET invece di 500 PHP.
Ho anche visto un articolo di un membro del team di sviluppatori di Facebook che ha affermato che, se Facebook dovesse essere ri-sviluppato da zero ora, probabilmente avrebbero scelto python.
Quindi, se il tuo sito è davvero scalabile, dovresti considerare l'uso di altre lingue oltre a php. Usando php puoi scalare. Ma devo fare un sacco di ritocchi IMHO.
Bene, Facebook è scritto in PHP e i siti SE sono scritti in ASP.NET. I motori dei blog sono abbastanza diversi nelle loro implementazioni (Wordpress è in PHP, dasBlog è .NET, ecc.). La risposta ovvia è "qualsiasi linguaggio farà, scegli quello che ti è più familiare". Con la possibile eccezione di linguaggi come C che non sono tipicamente usati per lo sviluppo su larga scala del web.
Ci sono alcune metriche di rendimento da considerare, ma qualsiasi cosa può essere fatta per scalare in modo appropriato se / quando si va incontro a gestire un traffico ingente.
La lingua non conta quasi quanto l'architettura dell'applicazione server.
In teoria, siti come questi potrebbero essere creati in qualsiasi lingua, ma in pratica si riduce a quali sono le scelte ragionevoli date cose come le differenze nella familiarità con loro e la scelta della piattaforma.
Vediamo la lista
La mia impressione è che PHP sia in testa, perché il costo del proprietario è inferiore.
La maggior parte dell'hosting offre il servizio LAMP a prezzi davvero economici, ma non così vicino con il server ASP o J2EE (Google App Engine potrebbe essere una via di fuga per questo).
Per le piccole aziende o per i privati, poiché il costo è un fattore vitale, selezionano PHP. Il che fa aumentare lo sforzo di utenti e sviluppatori verso il progetto Opensource in PHP, rafforzando così il ciclo. (Correggimi se ho torto)
Come molti hanno menzionato, il linguaggio scelto dipende probabilmente dalla scalabilità e dall'ambiente di distribuzione che si ha.
L'architettura è molto più importante. I server Web sono abbastanza facili da scalare, i database no.
Se si utilizza un database relazionale, sarà necessario distribuirlo tra diversi server. Presto dovrai buttare fuori dalla finestra tutto ciò che sai di RDBMS e utilizzare tecniche come sharding o un database non relazionale.
Poi hai altri vantaggi in termini di prestazioni per i server di memorizzazione nella cache, il bilanciamento del carico. Con molti server c'è anche l'implementazione di cui preoccuparsi.
La lingua non ha importanza se si considera che le prestazioni sono limitate dall'utilizzo del disco e ram non dalla CPU. Detto questo, devo entrare nel mio 2c di PHP odio, non è davvero un buon linguaggio.
Ho la sensazione che se Fog Creek, una società consolidata, non fosse lì per supportare l'infrastruttura di SO / SE, ASP.NET MVC / IIS / SQL Server non sarebbe stata una scelta così facile e ovvia. Molte startup traggono comprensibilmente vantaggio dalle soluzioni gratuite oa basso costo e, quando saranno in grado di permettersi qualcosa di più facile da trasformare in una soluzione più robusta, ne trarranno troppa profondità. Quindi si attaccano alla pila originale e la modificano al meglio. Quindi, i dolori della crescita pubblica a cui abbiamo assistito per alcuni successi "overnight".
Detto questo, i siti che popolari sono così pochi e distanti tra loro che è un problema "felice" se ti trovi in quella situazione. Quindi, come hanno detto altri, la lingua è in fondo alla lista di importanza. Concentrati sull'architettura e sul potenziale, ragionevole aspettativa di crescita per la scalabilità.
Se dovessi scegliere una lingua per sistemi su larga scala a questo punto, probabilmente sarebbe Erlang. Ha un sacco di funzionalità progettate per la tolleranza agli errori e la concorrenza nelle telecomunicazioni che rendono semplicemente più facile costruire sistemi su larga scala. Anche il modello di filo leggero funzionerà abbastanza bene in quello spazio.
Onestamente non penso che ci sia un linguaggio perfetto per costruire sistemi su larga scala (ma una scelta migliore per essere sicuri)
Leggi altre domande sui tag programming-languages web-development