[Haskell-cafe] Best Actor system?

Patrick Wheeler patrick.john.wheeler at gmail.com
Fri Mar 28 18:46:59 UTC 2014


Thanks Alois, I have recently been using Cloud Haskell for multi-machine
programs.

> i've written both haskell and erlang professionally, and never had a need
for actors/message passing

Even though Tom made a mention of distributed-process, part of Cloud
Haskell, I wanted to find out if their were other viable approaches to
distributed computing being explored by the Haskell community.

Patrick


On Fri, Mar 28, 2014 at 6:39 AM, Alois Cochard <alois.cochard at gmail.com>wrote:

> As mentioned before, there is Cloud Haskell:
> http://www.haskell.org/haskellwiki/Cloud_Haskell
>
>
> On 27 March 2014 23:22, Patrick Wheeler <patrick.john.wheeler at gmail.com>wrote:
>
>> @tom - forkIO and freineds works great for lightweight local threads,
>> what about non-local threads though in a distributed setting.  Is there
>> anything in haskell that you think replaces that functionality in erlang?
>>
>>
>> On Thu, Mar 27, 2014 at 10:34 PM, <amindfv at gmail.com> wrote:
>>
>>> Unfortunately I can't help with recommending an actor library. I think
>>> peoples' responses of "you should never want to do that" are, um, unhelpful.
>>>
>>> That said, i've written both haskell and erlang professionally, and
>>> never had a need for actors/message passing in haskell. It may be the wrong
>>> tool for most haskell jobs.
>>>
>>> The main things erlang-style concurrency gets you are
>>>  - lightweight threads (in haskell by default -- 'forkIO' creates
>>> lightweight threads)
>>>  - limited shared mutable state (haskell's pure)
>>>  - spreading computation over cores (in haskell you want parallelism not
>>> concurrency -- check out the Par monad)
>>>  - computation over boxes (see distributed-process)
>>>
>>> To do "message passing", check out MVars (and later, STM)
>>>
>>> Tom
>>>
>>>
>>> El Mar 27, 2014, a las 17:40, james <james at mansionfamily.plus.com>
>>> escribió:
>>>
>>>  On 27/03/2014 17:28, Christopher Allen wrote:
>>>
>>>  I don't actually want to get drawn into this, but one point would be
>>> that it's really just the same fallacies as OOP in general, but concurrent.
>>>
>>>
>>> Well, horses for courses, I've been writing distributed C++ apps since
>>> cfront was shiny and new.
>>>
>>> I find writing off OOP as distasteful as writing off functional, and
>>> there are people in both camps.
>>>
>>> I have ordered Simon's book and will take care to read it.
>>>
>>> In the mean time - does anyone have an answer to the question I asked?
>>>
>>> James
>>>
>>>  The idea that isolation behind an interface (message passing or not)
>>> is going to prevent unnecessary mutation or side effects from getting out
>>> of control.
>>>
>>>  In practice, it doesn't do that at all and the fact that you're making
>>> your inter-dependencies more implicit, rather than explicit, through the
>>> use of isolated buckets of side-effecting state and mutation is going to
>>> make it harder rather than easier to debug the program when it invariably
>>> breaks. I'd rather get a call-stack if I'm going to abandon Haskell-y
>>> goodness. And your Actors *will* get into a bad state, so you'll end up
>>> writing Inspector and Debugger mixins just to keep a handle on the
>>> complexity when they get into that bad state.
>>>
>>>  It's not impossible for Actors to make sense. I used agents (which are
>>> not full-blown Actors per se) in Clojure for side-effect isolation,
>>> serialization, and thread safety to good effect, but I kept how much "work"
>>> they did to a bare minimum and tried to keep everything in pure functions
>>> as long as I could.
>>>
>>>  It's just that I see programmers with a shiny new hammer looking for
>>> every nail they can find.
>>>
>>>
>>>
>>> On Thu, Mar 27, 2014 at 12:21 PM, Zongheng Yang <zongheng.y at gmail.com>wrote:
>>>
>>>> Can anyone give some detailed cons of Akka / actor model?
>>>>
>>>> On Thu, Mar 27, 2014 at 5:21 AM, Alois Cochard <alois.cochard at gmail.com>
>>>> wrote:
>>>> > I have good experience with actors (Scala/Akka), and I can tell you
>>>> that you
>>>> > should avoid them as much as possible.
>>>> > I think the model is good if you need to do some low level concurrency
>>>> > coding on a language that don't have effect tracking in types.
>>>> >
>>>> > Having used the Async library from Marlow, I highly recommend it...
>>>> and it
>>>> > probably cover a big percentage of traditional concurrency use cases.
>>>> >
>>>> > You still have Haskell Cloud if you want distributed messaging.
>>>> >
>>>> > Cheers
>>>> >
>>>> >
>>>> >
>>>> > On 27 March 2014 06:29, james <james at mansionfamily.plus.com> wrote:
>>>> >>
>>>> >> Having been introduced to actors by looking at Erlang, I discovered
>>>> Akka.
>>>> >>
>>>> >> It seems that the performance is pretty impressive and I like the
>>>> model.
>>>> >>
>>>> >> There seem to be several basic Actor libraries in Hackage, but they
>>>> don't
>>>> >> seem
>>>> >> to be very actively developed.
>>>> >>
>>>> >> I'm more interested in the model for programming within a single
>>>> runtime
>>>> >> than I am for distributed systems, but message and dispatch
>>>> performance
>>>> >> definitely is important.
>>>> >>
>>>> >> Can anyone share experiences with the different packages?  Is any one
>>>> >> of them stand-out?
>>>> >>
>>>> >> Thanks
>>>> >> James
>>>> >>
>>>> >>
>>>> >> _______________________________________________
>>>> >> Haskell-Cafe mailing list
>>>> >> Haskell-Cafe at haskell.org
>>>> >> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>> >
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Alois Cochard
>>>> > http://aloiscochard.blogspot.com
>>>> > http://twitter.com/aloiscochard
>>>> > http://github.com/aloiscochard
>>>> >
>>>> > _______________________________________________
>>>> > Haskell-Cafe mailing list
>>>> > Haskell-Cafe at haskell.org
>>>> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>> >
>>>> _______________________________________________
>>>> Haskell-Cafe mailing list
>>>> Haskell-Cafe at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>
>>>
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>>
>>> _______________________________________________
>>> Haskell-Cafe mailing list
>>> Haskell-Cafe at haskell.org
>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>
>>>
>>
>>
>> --
>> Patrick Wheeler
>> Patrick.John.Wheeler at gmail.com
>> Patrick.J.Wheeler at rice.edu
>> Patrick.Wheeler at colorado.edu
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
>
>
> --
> *Alois Cochard*
> http://aloiscochard.blogspot.com
> http://twitter.com/aloiscochard
> http://github.com/aloiscochard
>



-- 
Patrick Wheeler
Patrick.John.Wheeler at gmail.com
Patrick.J.Wheeler at rice.edu
Patrick.Wheeler at colorado.edu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20140328/4cf47525/attachment.html>


More information about the Haskell-Cafe mailing list