clojure / erlang / go per server ad alto volume

3

Ho un progetto che dovrà gestire migliaia di richieste al secondo con una discreta quantità di elaborazione per ciascuna. Per la maggior parte, l'elaborazione verrà eseguita su un elenco di elementi, in pratica filtrandolo e restituendo un elenco più piccolo. Questo processo può essere fatto in parallelo abbastanza facilmente e dovrei anche dire che la velocità è importante. Ho ristretto il mio linguaggio di scelta per il progetto fino a clojure, erlang e go, e li ho studiati tutti in misura moderata.

La mia domanda è: quali fattori dovrei considerare nella mia decisione? Quale lingua è migliore per cosa (gli esempi sarebbero grandi)? Perché per me è un po 'difficile da dire.

    
posta tonyl7126 09.04.2013 - 04:51
fonte

2 risposte

4

Il vantaggio di Erlang è che ha un'elaborazione distribuita che include il failover integrato mentre per le altre due lingue dovresti dare un po 'di pensiero per assicurarti che possa essere eseguito su più server in parallelo. Se le richieste sono indipendenti, sarà banale in qualsiasi lingua, se sono strongmente dipendenti, Erlang potrebbe dare qualche vantaggio.

Per il resto, l'hardware è economico rispetto al tempo dello sviluppatore, quindi scegli la lingua in base a ciò che il tuo team è più a suo agio con .

I benchmark suggeriscono che Erlang è il più lento dei tre, ma che è solo un punto di riferimento e la relazione potrebbe essere completamente diversa nel tuo caso particolare, quindi non pensarci troppo. Per quello che vale la maggior parte delle applicazioni web là fuori è implementato in PHP, Ruby e Python e sono le tre lingue più lente in base ai benchmark. Ma sono facili da scrivere e la lettura dei dati è un collo di bottiglia più grande per la maggior parte dei Web, quindi finisce per essere più economico anche con il minimo di hardware necessario.

    
risposta data 09.04.2013 - 09:22
fonte
1

Sceglievo Go, ma poi mi sono divertito a usarlo per "cose reali" per un po 'e non ho mai superato il "palcoscenico" con Erlang e non ho usato Clojure.

Sembra che sia un problema abbastanza piccolo da poter essere un buon banco di prova per provare tutte e tre le lingue in modo da poter vedere come ti piacciono?

Forse riferisci ciò che trovi quando hai finito; oppure vai al sito dello stack di codereview per suggerimenti su ciascun programma. : -)

    
risposta data 09.04.2013 - 07:10
fonte

Leggi altre domande sui tag