O modelo de ator usado por Erlang parece ser uma maneira muito diferente de fazer programação simultânea. O que você achou do modelo de ator? Será uma solução popular para simultaneidade?
concurrency
erlang
actor-model
Jonas
fonte
fonte
Respostas:
Eu presumo que você conhece o conceito. Ainda não sei muito bem.
A resposta curta é que acredito na popularidade desse modelo para a simultaneidade a curto e médio prazo. Eu sempre amei lambda e fechamentos e vejo atores como fechamentos especialmente manipulados para fornecer simultaneidade. Assim, os processadores com vários núcleos nos trazem um novo paradigma para a programação; a simultaneidade é obrigatória para obter alto desempenho. O modelo do ator parece o caminho mais fácil para explorar o hardware moderno.
Cedo ou tarde (espero, mais cedo), quase todas as linguagens convencionais suportarão um modelo melhor de concorrência. O modelo IMHO Actor, tão bem implementado em Erlang, deve ser o melhor candidato.
Um obstáculo à popularidade do modelo de ator é a pouca impedância com OOP, o paradigma dominante agora. Mas o primeiro passo está sendo dado, as principais linguagens estão implementando alguns recursos funcionais que limparão o caminho para o modelo do ator.
Estou lendo muito sobre esse assunto, acho muito importante para todos os programadores avançarem em suas habilidades.
Edição tardia:
Agora eu entendo melhor o paradigma. Então, posso dizer que é melhor que uma linguagem de programação permita que o problema seja tratado pelas bibliotecas ou, eventualmente, tenha um recurso para facilitar a adoção de um modelo. Amarrar uma linguagem com apenas um modelo não vê uma boa ideia.
fonte
"Popular" não é uma métrica muito importante. "Útil" ou "poderoso" é.
O modelo do ator existe há cerca de 35 anos, pelo menos na academia, e foi adotado por mais e mais idiomas do mundo real com o passar do tempo. (OK, Erlang não adotou o modelo de ator, reinventou o modelo de ator. Ainda.)
Então, dado que ele sobreviveu por várias décadas na academia e está se mudando para o mainstream, eu diria que ficará por um bom tempo.
fonte
Honestamente, acho que é a melhor maneira de fazer simultaneidade. A memória compartilhada com o modelo de bloqueios me assusta, posso ver muitas maneiras pelas quais isso pode 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 no Clojure e Haskell e provavelmente em alguns outros idiomas.
fonte