ti-enxame.com

O que você acha do Modelo de Ator?

O Modelo de Ator que é usado por Erlang parece ser uma maneira muito diferente de fazer programação simultânea. O que você acha do Modelo de Ator? Será uma solução popular para simultaneidade?

18
Jonas

Presumo que você conheça o conceito. Bem, ainda não sei muito bem.

A resposta curta é que acredito na popularidade desse modelo para concorrência no curto e médio prazo. Eu sempre adorei lambda e closures e eu vejo closures como atores especialmente feitos para a concorrência de energia. Assim, os processadores de vários núcleos trazem para nós um novo paradigma para a programação, a simultaneidade é obrigatória para atingir um alto desempenho. O modelo de ator parece o caminho mais fácil para explorar o hardware moderno.

Mais cedo ou mais tarde (espero que mais cedo), quase todas as linguagens convencionais suportarão um modelo melhor de simultaneidade. O modelo IMHO Actor tão bem implementado em Erlang deve ser o melhor candidato.

Um obstáculo para que o modelo de ator ganhe popularidade é a pouca impedância com OOP, o paradigma dominante agora. Mas o primeiro passo está sendo dado, as linguagens principais estão implementando alguns recursos funcionais que irão limpar o caminho para o modelo de Ator.

Estou lendo muito sobre esse assunto, acho que é muito importante para todo programador avançar em suas habilidades.

Edição tardia:

Agora entendo melhor o paradigma. Então posso dizer que é melhor uma linguagem de programação permitir que o problema seja tratado por bibliotecas ou eventualmente ter um recurso que facilite a adoção de um modelo. Amarrar um idioma com apenas um modelo não dá uma boa ideia.

7
Maniero

"Popular" não é uma métrica muito importante. "Útil" ou "poderoso" é.

O modelo Ator existe há cerca de 35 anos, pelo menos na academia, e tem sido adotado por mais e mais linguagens do mundo real com o passar do tempo. (OK, Erlang não adoto o modelo de ator, ele reinvento o modelo de ator. Ainda assim.)

Então, como ele sobreviveu por várias décadas na academia e está se tornando popular, eu diria que vai durar um bom tempo.

7
Frank Shearar

Honestamente, acho que é a melhor forma de fazer simultaneidade. O modelo de memória compartilhada com bloqueios me assusta, eu posso ver muitas maneiras de dar errado. Atores com passagem de mensagens parecem ser uma maneira muito mais limpa de fazer as coisas.

Veja também o STM, que pode ser usado em Clojure e Haskell e provavelmente em algumas outras linguagens.

5
Zachary K