This page is no longer maintained — Please continue to the home page at www.scala-lang.org

Link: Long rant on Erlang-style Actors: Lost Dimension

1 reply
Constantine
Joined: 2011-05-29,
User offline. Last seen 42 years 45 weeks ago.
I written up a post LtU on the differences between Erlang-style and E-style actors. Considering that Scala supports Erlang-style supports in the standard library, and supports E-style actors through my AsyncScala library, the discussion could be interesting in this context too. Note I believe that Erlang-style actors have less expressive power then E-style actors, and in the post I'm trying to explain why. 
http://lambda-the-ultimate.org/node/4453
Thanks,Constantine
roland.kuhn
Joined: 2011-02-21,
User offline. Last seen 35 weeks 3 days ago.
Re: Link: Long rant on Erlang-style Actors: Lost Dimension
Hi Constantine,

thanks for this write-up, looking from a different vantage point is always refreshing. There is one other actor library on the JVM, which as far as I can see has all the nice properties you enumerate (http://akka.io), and which will soon be part of the Scala standard library (actors; futures are synchronized with SIP-14, which is the new proposed Future API for Scala). Hence, it might make sense to take a look to check out Akka, because (shamelessly borrowing your four points):

- Future/Promise dataflow API allows composition of asynchronous computations
- Actors are decoupled from event queueing and dispatch (all separately configurable)
- Actors are really light-weight, ca. 400bytes overhead
- Actor behavior is completely encapsulated, no calling into it from outside, no execution unless for externally scheduled events

I am still reading up on E, so I am not certain about its actor semantics, but it might be worth mentioning that Akka employs a stricter processing model: by default events must be consumed in the order in which they were queued, optional Erlang-style reordering will be available soon for helping migration of existing Scala actors applications (curiously, Akka users have not yet asked for this feature).

New in version 2.0 is the introduction of ActorSystem as a container for a tree of actors, which on a design level could be compared to E’s vats (though we do not implement anything like E’s capabilities, yet).

It would be interesting to write up a three-way comparison between the three designs, but I will have to learn more (especially about E) before I can do that with good conscience.

Regards,

Roland

Am Sonntag, 19. Februar 2012 15:27:28 UTC+1 schrieb Constantine:
I written up a post LtU on the differences between Erlang-style and E-style actors. Considering that Scala supports Erlang-style supports in the standard library, and supports E-style actors through my AsyncScala library, the discussion could be interesting in this context too. Note I believe that Erlang-style actors have less expressive power then E-style actors, and in the post I'm trying to explain why. 
http://lambda-the-ultimate.org/node/4453
Thanks,Constantine

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland