2012-10-01 12 views
5

Voglio scrivere codice stile attore per processori incorporati e sto cercando di decidere tra scrivere tutto in Erlang e scrivere tutto in zeromq + qualsiasi lingua. Usare zeromq sembra essere molto potente nel senso che posso usare qualsiasi linguaggio di programmazione e rendere il mio sviluppo molto più semplice (molte librerie disponibili) ma poi non sono sicuro che ci sia qualche trucco in questo potere? Capisco che Erlang rappresenti il ​​modello degli attori molto meglio soprattutto con i concetti di OTP, ma poi sembra facile rappresentare un modello di attore simile con zeromq? Sto guardando correttamente?"Erlang" vs "zeromq + qualsiasi lingua" per applicazioni integrate

1.Che cosa faccio davvero a non usare Erlang per le applicazioni embedded (dove NON è richiesta l'elaborazione distribuita, un power point di Erlang) e basta costruire su un framework di messaggistica generico come zeromq?

2.È Erlang che offre più di un framework di messaggistica coordinato per un'applicazione incorporata non distribuita?

3. Quali funzionalità specifiche di Erlang potrebbero richiedere troppo tempo per essere implementate con zeromq?

risposta

3

Stai confrontando mele e arance. Parte del vantaggio di usare Erlang è la lingua; se hai intenzione di metterlo contro zmq + qualche altra lingua, l'altra lingua in quel confronto è davvero importante. zmq + assemblaggio ARM? Erlang offre tutti gli straordinari vantaggi dell'ASM non codificante a mano.

Quanto a cosa altro Erlang porta in tavola, Embedded Erlang? Absolutely sostiene che Erlang ha dei vantaggi a tolleranza d'errore, il codice di carico a caldo, il rapido sviluppo facendo leva Erlang e OTP, facile interazione con librerie C, e semplici operazioni di debug REPL dal vivo e copia -paste di termini.

Alcune di queste cose, come il ricaricamento a caldo, il REPL on-device e le librerie consolidate, richiedono sicuramente un vero hacking da riprodurre da zero.

3

Il mio punto è che dovrete lavorare molto duramente per ottenere lo stesso tipo di gestione degli errori in Zmq. Erlang ha degli errori di gestione incorporati davvero piacevoli quando le cose cominciano a peggiorare. C'è stato un notevole dispendio di tempo in Erlang, ottimizzando quella parte e rendendola robusta.

Zmq, d'altra parte, è probabilmente più veloce in alcune combinazioni con alcune lingue quando si effettuano semplici benchmark. C'è meno overhead, quindi può elaborare i messaggi più velocemente di quello che Erlang può fornire.

Ma è probabile che finirai per ri-implementare grandi parti di Erlang nella lingua che preferisci. E probabilmente non farai un lavoro come 6-10 sviluppatori che lavorano su Erlang/OTP per 15 anni.

D'altra parte, Erlang non è un linguaggio semplice da imparare. C'è molto di più che imparare semplicemente come programmare in uno stile funzionale. Soprattutto i modelli di concorrenza e la gestione degli errori possono richiedere del tempo per abituarsi.

0

ZeroMQ =/= Erlang copre molte differenze. L'affermazione è che ZeroMQ fornisce solo l'aspetto della messaggistica, non i processi leggeri, il monitoraggio dei processi e altri aspetti.

Problemi correlati