Domanda

Ho litigato con alcuni amici all'università e non riusciamo a raggiungere il punto in cui si trova il framework con più scalabilità per le applicazioni Web (e comunque molto veloce).

Uno chiama jsp, l'altro ruby ??l'altro per php e così via. Potrei chiedervi di chiarirci su quale ulteriore potenziale di scalabilità?

Tks, spero di non duplicare nulla di quello che ho cercato ma non ho trovato nessuna domanda precedente come questa.

Modifica: se potessi puntare un confronto su questo sarebbe buono :)

È stato utile?

Soluzione 4

(cinque anni dopo ...)

Ho trovato questo post sul blog che mette a confronto framework Web dipendenti da più lingue. E ora questo risponde praticamente alla domanda che avevo nel 2008.

http://www.techempower.com/blog/2013 / 03/28 /-quadro di riferimento /

Altri suggerimenti

Ruby e PHP non sono framework webapp. Sono linguaggi di programmazione molto popolari per lo sviluppo web.

In generale, la scalabilità di webapp non è una proprietà di un linguaggio di programmazione e un determinato framework di webapp può al massimo non ostacolare la scalabilità. Una buona scalabilità è più una proprietà del design dell'applicazione.

Esistono troppi framework webapp là fuori per un confronto punto per punto che non è affatto enciclopedico.

Inoltre, puoi affrontare la scalabilità per una determinata applicazione in diversi modi. Un modo è avere un ambito ben definito e ristretto e mirare a straordinarie prestazioni grezze, in modo che un'unica macchina possa servire miliardi di unità di lavoro. Il miglior esempio in circolazione è Mailinator .

Un altro modo è quello di rendere più semplice servire carichi crescenti di " solo " aggiungendo più hardware. Praticamente qualsiasi framework webapp supportato da database può scalare in questo modo: basta aggiungere più server applicazioni tra un bilanciamento del carico e un back-end del database condiviso. Se risolvi il problema in questo modo, la tua principale preoccupazione è progettare l'applicazione per minimizzare 1. contesa del database 2. carico del database.

L'ultimo modo è progettare il sistema in modo follemente parallelo. Google è il primo esempio.

In sintesi: le lingue o i framework non creano applicazioni scalabili, come fanno gli architetti del software.

EDIT: per essere chiari, la mia risposta è focalizzata sulla scalabilità , ovvero la capacità di gestire carichi crescenti senza cambiare design. Questa è una proprietà diversa dalla velocità di esecuzione.

Gli algoritmi contano di più per la scalabilità rispetto al linguaggio utilizzato.

Detto questo, ci saranno differenze nella velocità di esecuzione tra le lingue. Credo che Java (servlet e JSP compilati in servlet, cioè codice nativo) saranno più veloci di Ruby e PHP di una certa quantità). Esistono anche una tonnellata di framework Web per Java che ti incoraggeranno a fare le cose nel modo migliore per la scalabilità.

Progetta anche la tua app in modo che possa funzionare felicemente dietro un bilanciamento del carico e la scalabilità diventa molto più semplice :) Questo non è il mio campo di competenza tuttavia

La scalabilità del framework Web è un po 'una domanda troppo ponderata (alcuni direbbero contest p155ing). A meno che tu non stia ottenendo mega dollari (buona fortuna in questi giorni) e possa garantire milioni di visitatori al giorno tutti quei framework possono gestirlo bene (come ASP.NET).

Personalmente sceglierei sempre ASP.NET. È scalabile come qualsiasi altra cosa e ha i migliori strumenti di sviluppo. L'unico aspetto negativo sono i costi di hosting e del sistema operativo.

Puoi anche dare un'occhiata a " Cosa è più veloce? PHP vs ASP vs JSP vs CGI ecc. "

Penso che Java / Java EE sia l'unico "framework" progettato da zero per sviluppare applicazioni distribuite / raggruppate e che incoraggia le buone pratiche a raggiungerlo dalle specifiche (EJB, JTA ...).

Ma come al solito, dipende. Questo tipo di domande tende spesso a infiammare le guerre :)

Non sono sicuro che nessuno di quei framework citati ostacolerà seriamente la scalabilità.

Tutto dipende dall'implementazione.

Mi concentrerei prima su come far funzionare bene la tua app Web, quindi mi preoccupo della scalabilità quando diventa un problema. In altre parole "attraversiamo quel ponte quando arriviamo ad esso".

A: C ISAPI dll (o modulo apache personalizzato) :)

Anche in questo caso l'overhead del web server, analizzando le richieste http e servendo le pagine html rende quasi irrilevanti i tempi di esecuzione delle tue app. Se esegui la tua app come app CGI, aspettati prestazioni ancora inferiori.

Per la scalabilità nel web, stai davvero parlando di aggiungere più server e bilanciamento del carico, togliendo il carico dal server inserendo il database (se utilizzato pesantemente) su un server separato.

Le prestazioni grezze di queste lingue non sono quasi nulla di cui preoccuparsi. Usa quello che vuoi usare, con il quale sarai più produttivo. Preoccupati per gli altri problemi che incontrerai: rete io, sicurezza, correttezza.

Diversi punti positivi già. Il mio punto principale sarebbe questo: una persona che conosce Python dentro e fuori sarà probabilmente in grado di rendere il codice più scalabile usando python che usando Java. E ci sono molti siti di grandi dimensioni che utilizzano tutte le tecnologie di cui parli, quindi non credo che ci sia davvero alcun grande vantaggio in entrambi i casi.

Per la maggior parte, dovresti attenersi a ciò che conosci, a meno che non ci sia una ragione davvero significativa per andare in un altro modo.

Mi è capitato di imbattermi in questa domanda e ho notato che alcuni parlano di velocità, altri di scalabilità. Ho scritto un post sul blog spiegando la differenza:

http://www.fransekman.com/scalability -o-prestazioni-cosa-si-media /

"Un sito Web ad alta scalabilità è un sito Web, il cui livello di prestazioni può essere mantenuto aggiungendo più capacità all'aumentare del carico". Ciò può essere ottenuto in qualsiasi linguaggio di programmazione e quasi in qualsiasi framework. Alcuni framework dispongono di funzionalità integrate, che possono rendere più veloci alcune implementazioni di scalabilità comuni.

Un linguaggio compilato generalmente funzionerà più velocemente di un linguaggio interpretato, quindi penso che Ruby e PHP inizino dietro l'ottava sfera, ma dipende davvero da come usi il linguaggio e da come strutturi il codice.

Tutte le lingue avranno le loro migliori pratiche e modelli per costruire applicazioni scalabili e spesso ci saranno compromessi a seconda della funzionalità dell'applicazione proposta.

Se vuoi sapere come i principali siti usano LAMP per raggiungere la scalabilità, dovresti dare un'occhiata a frammentazione del database .

La scelta di un framework web ha un impatto minore sulla scalabilità (la capacità di ridimensionamento) rispetto all'architettura del tuo sito. La maggior parte dei moderni framework Web si presta molto bene al ridimensionamento, quindi è davvero la tua configurazione di distribuzione che richiede attenzione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top