Il modello di attore utilizzato da Erlang sembra essere un modo molto diverso di eseguire la programmazione concorrente. Cosa ne pensi del modello dell'attore? Sarà una soluzione popolare per la concorrenza?
Il modello di attore utilizzato da Erlang sembra essere un modo molto diverso di eseguire la programmazione concorrente. Cosa ne pensi del modello dell'attore? Sarà una soluzione popolare per la concorrenza?
Risposte:
Presumo che tu conosca il concetto. Beh, non lo so ancora molto bene.
La risposta breve è che credo nella popolarità di questo modello rispetto alla concorrenza a breve e medio termine. Ho sempre amato la lambda e le chiusure e vedo attori come chiusure appositamente gestite per alimentare la concorrenza. Quindi i processori multi core ci offrono un nuovo paradigma per la programmazione, la concorrenza è obbligatoria per raggiungere alte prestazioni. Il modello di attore sembra il percorso più semplice per sfruttare l'hardware moderno.
Prima o poi (spero prima) quasi tutti i linguaggi tradizionali supporteranno un modello migliore per la concorrenza. Il modello di attore IMHO così ben implementato a Erlang dovrebbe essere il miglior candidato.
Un ostacolo alla popolarità del modello di attore è la piccola impedenza con OOP, il paradigma dominante ora. Ma il primo passo è stato dato, le lingue principali stanno implementando alcune caratteristiche funzionali che puliranno il percorso al modello di attore.
Sto leggendo molto su questo problema, penso che sia molto importante per ogni programmatore avanzare nelle sue capacità.
Modifica tardiva:
Ora capisco meglio il paradigma. Quindi posso dire che è meglio che un linguaggio languido consenta di consentire al problema di essere gestito dalle biblioteche o eventualmente di avere una funzione per facilitare l'adozione di un modello. Legare una lingua con un solo modello non vede una buona ideia.
"Popular" non è una metrica estremamente importante. "Utile" o "potente" è.
Il modello Actor esiste da circa 35 anni, almeno nel mondo accademico, ed è stato adottato da sempre più lingue del mondo reale con il passare del tempo. (OK, Erlang non ha adottato il modello di attore, ha reinventato il modello di attore. Comunque.)
Quindi, dato che è sopravvissuto per diversi decenni nel mondo accademico e si sta diffondendo nel mainstream, direi che ci sarà per un bel po '.
Onestamente penso che sia il modo migliore per fare concorrenza. La memoria condivisa con il modello delle serrature mi spaventa, riesco a vedere troppi modi in cui può andare storto. Gli attori che trasmettono messaggi sembrano essere un modo molto più pulito di fare le cose.
Guarda anche STM che può essere usato in Clojure e Haskell e probabilmente in altre lingue.