2010-10-08 14 views

risposta

15

Erlang è un linguaggio e un runtime. Sto assumendo si desidera un confronto del runtime Erlang con node.js

Prima ti elenco le somiglianze:

  • Entrambi si prestano a event-driven di programmazione.
  • Entrambi si concentrano su una programmazione altamente asincrona.

E poi poi il vantaggio Erlang ha:

  • messaggio Erlangs passando astrae le differenze tra i processi locali e distribuiti rendendo più facile programmazione distribuita.
  • Il caricamento di codice hot di Erlangs consente di installare versioni sui servizi in esecuzione senza interrompere l'attività corrente.
  • Erlang dispone di strumenti superiori per l'imballaggio e la distribuzione.
  • I supervisori Erlangs e i banchi gen_server forniscono una struttura superiore per la realizzazione di sistemi estremamente robusti e resistenti ai guasti.
+2

Afaik node.js ti obbliga a scrivere codice basato su eventi dove erlang ti offre solo l'opzione, quindi puoi ricorrere a uno stile di codice diverso, quando necessario. – ZeissS

+1

Il caricamento a caldo è un argomento scottante nella comunità dei nodi e potremmo vederlo presto come una possibilità. Ci sono modi per farlo, usando l'API V8 esistente, la domanda è principalmente come farlo senza problemi. –

+0

Cosa offre ognuno di questi che qualcosa come Common Lisp non fa e non può fare? – MadPhysicist

11

Erlang ha 20 anni ed è stato testato molte volte. Utilizza tutti i core sui sistemi e semplifica il clustering.

node.js è ancora molto giovane, utilizzerà solo un core per runtime.

E tutto quello che dice Jeremy Wall.

+0

che dire ora, è ora 5 anni, dimmi ora quale dovrei usare. –

+0

Sono ancora un grande fan di Erlang, e con Elixir sul paesaggio, la VM ora ha un linguaggio con il potenziale per diventare molto popolare. Il Phoenix Framework è fantastico ed ejabberd può incorporare nativamente i moduli Elixir in un modo abbastanza elegante. – cstar

+0

Non vorrei assolutamente sottrarmi a questo commento e non ho un sacco di esperienza con erlang. Tuttavia vale la pena ricordare che le librerie core piuttosto piccole di nodejs sono così giovani (flussi, ecc.), Ma la parte "più grande" di esso è V8, il motore javascript di googles. Quindi le librerie sono passate attraverso un sacco di iterazioni e sono a questo punto considerate abbastanza stabili, ma gli aspetti principali di questo sono molto solidi perché V8 è molto più vecchio e molto più testato. – nahelm

4

Non ridurre la potenza della corrispondenza del modello Erlang. Per quanto mi piaccia JavaScript, questa caratteristica del linguaggio avvincente non è semplicemente elaborata. Sembra anche che la comunità JS non apprezzi il paradigma dello stato non condiviso. Infine, le multiistanze per utilizzare i multi-core mi sembrano retrograde.

+0

+1 per la cosa "non stato condiviso". –

Problemi correlati