Have a look here: http://clojure.org/state

In the section *Message Passing and Actors*, he gives his reasoning.

Basically, Actors were designed for distributed programs, but that comes 
with added complexity and a performance hit. He wanted a simpler model, 
because he was mainly concerned about concurrency in same-process 
programming.
 
On Wednesday, 4 February 2015 12:00:51 UTC, Gary Verhaegen wrote:
>
> They are different from actors because Rich is "unenthusiastic about 
> actors". I'm not sure there is any single piece of reference where he 
> himself describes exactly why he does not like actors, but here is a guess.
>
> Actors have one very desirable property: they encapsulate some state, and 
> the actor itself is responsible for managing the synchronisation of that 
> state. This is the part about actors that seemed worth having in Clojure.
>
> Actors also have some very undesirable properties, at least according to 
> Rich Hickey's aesthetic tastes (or more precisely, what I think his 
> aesthetic tastes are based on what I have seen in his speeches and 
> writings): they encapsulate behavior in a closed way and they hide their 
> internal state.
>
> So, like he often does, Rich separated the essence of actors into separate 
> pieces and recombined them in a new way, giving birth to what is now called 
> agents in Clojure: a piece of state responsible for its own 
> synchronisation, but completely open to behavioral extension and which does 
> not hide its internal state. Overall, openness to extension and observable 
> state are pretty important values in the Clojure philosophy.
>
> As for the name, I would assume he deliberately chose a word that was not 
> widely used yet for any programming language level concept (since this is a 
> new concept) but still reflected the notion of individuality and 
> responsibility for oneself embodied in the agent's responsibility for its 
> own synchronization.
>
> Of course, as agents were part of the initial Clojure release, only Rich 
> Hickey can give a definitive answer.
>
> On Wednesday, 4 February 2015, Justin Smith <noise...@gmail.com 
> <javascript:>> wrote:
>
>> In fact agents in Scala were the only version I found that were like 
>> Clojure in design.
>>
>> Beyond the fact that they exist in Scala, and the design goal was to 
>> replicate Clojure's agents, I didn't find that especially informative.
>>
>>
>> On Tuesday, February 3, 2015 at 6:59:09 PM UTC-8, Leonardo Borges wrote:
>>>
>>>
>>>> (as opposed to the combined state+behavior version of agents that one 
>>>> sees elsewhere) 
>>>>
>>>>
>>> Did you mean to say actors? Actor is the abstraction that bundles state 
>>> and behaviour together.
>>>
>>> Agents are different and in fact, Akka, a popular JVM actor library, 
>>> provides agents in addition to actors themselves: 
>>> http://doc.akka.io/docs/akka/snapshot/scala/agents.html
>>>
>>> Cheers,
>>> Leonardo Borges 
>>>
>>  -- 
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with 
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to