2012-01-08 3 views
6

So che anche una domanda su Erlang o Java sembra abbastanza strana, perché sono abbastanza lingue diverse con paradigmi anche diversi. Ma ora conosco molto superficialmente entrambi, quindi, chiedete cosa vorreste trovare più prezioso da sapere, veloce, scalabile? Cosa mi viene in mente:Java (Grails) o Erlang (Elixir) su brevi richieste web: velocità, scalabilità?

  1. Java è la lingua principale. Non sono sicuro di Groovy e Grails, ma se il progetto diventa più del tuo hobby, è molto più semplice trovare programmatori Java che supportino questo codice. L'elisir è un hobby di un buon programmatore di Erlang - quindi sarebbe davvero difficile supportare il codice in elisir. Inoltre, Grails è già scritto framework, quindi dovrebbe essere implementato meglio che il mio stesso auto-scritto in Elixir framework.
  2. L'app Erlang (ben scritta) è sinonimo di scalabilità. Ma quando si tratta di app web che iniziano, fai delle query leggere e muori - non c'è bisogno di ridimensionarle più delle semplici query degli utenti Round-Robin tra loro (processi Java su macchine diverse)?
  3. Se parliamo di molte semplici query (niente polling lungo e così via) - così tanti processi svegli e muoiono ogni secondo - Erlang ha un modello di processo davvero leggero, quindi .. Che ne dici di Java e di un sacco di nuovi generati e uccisi elaborato ogni secondo?

Grazie in anticipo.

PS Chart dal this test di verifica delle prestazioni dubbi sulla perfomance di Java VM.

+0

Questo è _probabilmente adatto per [Programmatori SE] (http://programmers.stackexchange.com). Ho mandato un ping ai loro moderatori per dare un'occhiata. La tua domanda verrà probabilmente migrata lì nel prossimo futuro. Per il momento lo sto lasciando aperto, anche se è un po 'troppo ampio per Stack Overflow. Penso che questo possa avere alcune risposte davvero interessanti e interessanti, ma voglio ricontrollare i miei colleghi prima di migrare. –

+0

Generalmente "quale linguaggio/quadro dovrei usare?" le domande sono fuori tema per i programmatori in quanto non includono alcun criterio chiaro per effettuare la scelta. Questo è * possibilmente * OK perché ha alcuni criteri, ma non sono sicuro che il confronto che stai cercando di fare sia valido. Non so abbastanza per dire in un modo o nell'altro però. – ChrisF

+0

@Minner: Non penso che questo benchmark abbia validità. –

risposta

-2

Definitivamente, Java. La performance test a cui si fa riferimento mostra che le prestazioni di Java/Netty sono uguali a quelle di Erlang multicore, È possibile utilizzare numerose librerie di I/O di attori e async Java, in modo che ciascuna richiesta non avvii un nuovo processo o thread - basta creare un nuovo gestore in nanosecondi.

+3

Bene, il test delle prestazioni utilizza il server Web OTP e Erlang ha molti altri server disponibili che sono preferiti dalla sua comunità, come cowboy. Affidarsi a questo benchmark equivale a credere che le prestazioni dei server Web di Ruby siano quelle fornite da webrick. In ogni caso, come altri hanno detto, non credo che questa decisione debba essere guidata solo da quei parametri di riferimento. –