Re: Actors not good for concurrency model

2010-05-19 Thread Fabio Kaminski
Let me make clear that i agree with you... if you look at java solutions to
those issues .. they are complete inellegant and almost force you to
deadlocks or bad performance using locks (coming back to single threaded
performance)...

so actors are far way better then the usual approach...

the thing is, looking in the FP paradigm, it almost enforce you to create
black boxes.. since you dont need to return anything to the caller..

nobody claiming that monads are perfect.. but i think solutions are
possible, like future-promisse for instance..
you could launch the threads and have a monitor or a thermometer to it...
its returning you something...

if we dont take care, and dont worry about functional purity.. in can use it
as your in-house project.. when YOU know what happen, and get everything
under control.. but when it cames to publish a library to share some
functionality.. it will end us all open the source and putting our stuff
inside, making a different beast everytime... i think it was that the oop
comunnity fail to address.. i cant remember the time a get a third part java
library ...and in fact you have to compose/embed a hole java application
like you end up doing it with jetty for example..

we dont have to pursuit purity at all cost.. and fell a sinner when we dont
acomplished that.. is just if we achieve that
it will make things better to us..

thats a nice goal to try

any effort pursuing to solve dificult problems are venerable, actors are one
of them... but we must have our critical eyes open to understand the limits
of what you can do with every solution...

technology are not to be understanded as footbal teams or religions , as we
must exceede ourselves everyday




On Tue, May 18, 2010 at 10:28 PM, Bill Allen b...@k2bea.org wrote:



 On Sun, May 16, 2010 at 3:19 PM, Fabio Kaminski 
 fabiokamin...@gmail.comwrote:

 Sorry about using the list like twitter..

 but i thought this is a pretty good article about functional programming
 side effects, and why actors are not very good design decision..

 Actors not good for concurrency model :

 http://pchiusano.blogspot.com/2010/01/actors-are-not-good-concurrency-model.html

 just another prove that Rich thoughts are pretty concise ,
 and that all are pretty well materialized in clojure's framework.

 what convinced me to embrace clojure, is that it choose to make the right
 thing , instead of the popular one..

 as haskell community says wisely : avoid success at all costs  :)

 There's no question in my mind that Rich's thoughts are pretty concise.
 But then again, there's no question in my mind that Joe Armstrong's thoughts
 aren't also pretty concise. There is no system that can fundamentally
 guarantee against programming errors in the single core or multi core case.
 Erlang has provided a number of constructs that mitigate against poor
 multi-processor programming mistakes, but remember, that's mitigate, not
 prevent. The article struck me as a long diatribe on a subject that the
 author knows just enough about to believe he's an expert when he's really
 just scratching at the surface.

 Let me be clear. Actors are a proven model to build good, in fact,
 excellent concurrent and high reliability systems. That statement doesn't
 take anything away from the advances that clojure is bringing to the state
 of the art. For us to believe that clojure is pointing the way to a better
 solution doesn't require us to say that actors/Erlang sucks.

 --
 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.comclojure%2bunsubscr...@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 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

Re: Actors not good for concurrency model

2010-05-18 Thread Peter Schuller
 Actors in Erlang DO have mutable state, you're just discouraged from
 using it. ;) No really, erl -man get and set. Sometimes you're forced
 to use this despite the best of intentions.

I don't think anyone is trying to claim that it is impossible to
mutate shared in state in an erlang actor. The claim is rather that
the intended fundamental model implemented by an actor is not one of
shared mutable state.

-- 
/ Peter Schuller

-- 
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


Re: Actors not good for concurrency model

2010-05-18 Thread Dave Fayram
On Mon, May 17, 2010 at 11:20 PM, Peter Schuller
peter.schul...@infidyne.com wrote:
 Actors in Erlang DO have mutable state, you're just discouraged from
 using it. ;) No really, erl -man get and set. Sometimes you're forced
 to use this despite the best of intentions.

 I don't think anyone is trying to claim that it is impossible to
 mutate shared in state in an erlang actor.

I'm not sure many people here have any clue what they're talking
about, especially when it comes to Erlang. I thought I'd make it
clear.

 The claim is rather that the intended fundamental model implemented by an 
 actor is not one of
 shared mutable state.

I'm not sure why a getValue/setValue is any different from an ='s
sign. Instability and unpredictability still results. Be they actors
or threads, neither really solves any sort of problem save perhaps
atomic updates.

This all seems quite far afield of the original claim of the article,
which was primarily that Actors are not composable and thus inferior
to more functional programming. Even if we lay aside the implicit
assumption that composability is a benefit, we're still left with the
absurdity of the statement. Monads, one of the more important and
critical constructs for purely functional programming, are not
composable.

The whole thing is absurd, and associating it with anything
clojure-esque only lets that absurdity rub off.



 --
 / Peter Schuller

 --
 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



-- 
-- 
Dave Fayram
dfay...@gmail.com

-- 
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


Re: Actors not good for concurrency model

2010-05-18 Thread Peter Schuller
 I'm not sure why a getValue/setValue is any different from an ='s
 sign. Instability and unpredictability still results. Be they actors
 or threads, neither really solves any sort of problem save perhaps
 atomic updates.

My (unproven) gut feeling is that people are afraid of machine
concurrency, and the removal of machine-level concurrency issues (by
use of appropriate high-level abstractions) cause a belief, which is
in my estimation mistaken, that you are therefor rid of *all*
concurrency issues.

In any case, for the record, I did not mean to imply that i agreed,
overall, with the originally posted article.

-- 
/ Peter Schuller

-- 
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


Re: Actors not good for concurrency model

2010-05-18 Thread Bill Allen
On Sun, May 16, 2010 at 3:19 PM, Fabio Kaminski fabiokamin...@gmail.comwrote:

 Sorry about using the list like twitter..

 but i thought this is a pretty good article about functional programming
 side effects, and why actors are not very good design decision..

 Actors not good for concurrency model :

 http://pchiusano.blogspot.com/2010/01/actors-are-not-good-concurrency-model.html

 just another prove that Rich thoughts are pretty concise ,
 and that all are pretty well materialized in clojure's framework.

 what convinced me to embrace clojure, is that it choose to make the right
 thing , instead of the popular one..

 as haskell community says wisely : avoid success at all costs  :)

 There's no question in my mind that Rich's thoughts are pretty concise. But
then again, there's no question in my mind that Joe Armstrong's thoughts
aren't also pretty concise. There is no system that can fundamentally
guarantee against programming errors in the single core or multi core case.
Erlang has provided a number of constructs that mitigate against poor
multi-processor programming mistakes, but remember, that's mitigate, not
prevent. The article struck me as a long diatribe on a subject that the
author knows just enough about to believe he's an expert when he's really
just scratching at the surface.

Let me be clear. Actors are a proven model to build good, in fact, excellent
concurrent and high reliability systems. That statement doesn't take
anything away from the advances that clojure is bringing to the state of the
art. For us to believe that clojure is pointing the way to a better solution
doesn't require us to say that actors/Erlang sucks.

-- 
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

Re: Actors not good for concurrency model

2010-05-17 Thread Fabio Kaminski
far as i know..actors share a mutable queue.. so there's good possibility
for dead-locks

for scala theres an akka framework , that you can solve that with its actors
.. that let me see.. uses a STM..
and its actors are pretty the same as .. clojures agents

i think clojure are making disciples in others languages too :)

but the greatest argument is the lack of composabillity and reuse that
side-effect functions suffer from...

the old divide-n-conquer..

On Sun, May 16, 2010 at 9:17 PM, patrickdlogan patrickdlo...@gmail.comwrote:

 Nice diatribe against actors by someone who's apparently never...
 actually... used... actors. Clojure is really nice, but that doesn't
 mean I'm going to buy into weak arguments against features it doesn't
 have in its core.


 On May 16, 12:19 pm, Fabio Kaminski fabiokamin...@gmail.com wrote:
  Sorry about using the list like twitter..
 
  but i thought this is a pretty good article about functional
 programming
  side effects, and why actors are not very good design decision..
 
  Actors not good for concurrency model :
 http://pchiusano.blogspot.com/2010/01/actors-are-not-good-concurrency...
 
  just another prove that Rich thoughts are pretty concise ,
  and that all are pretty well materialized in clojure's framework.
 
  what convinced me to embrace clojure, is that it choose to make the right
  thing , instead of the popular one..
 
  as haskell community says wisely : avoid success at all costs  :)
 
  --
  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.comclojure%2bunsubscr...@googlegroups.com
  For more options, visit this group athttp://
 groups.google.com/group/clojure?hl=en

 --
 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.comclojure%2bunsubscr...@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 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

Re: Actors not good for concurrency model

2010-05-17 Thread Peter Schuller
 far as i know..actors share a mutable queue.. so there's good possibility
 for dead-locks

Actors as they work in erlang don't have mutable state (not
intrinsically anyway, though of course you can implement an actor that
does poke on shared data since it's your code). The 'state' in an
erlang actor is that of parameter(s) to an infinitely tail-recursive
function.

Deadlock in a message passing system is still possible if you limit
the mailbox size (unless some other means are used to prevent it). My
understanding is that mailbox size is not limited in erlang, and that
there is no other means to avoid deadlock, meaning that while you will
not deadlock in the message passing system you can cause memory
exhaustion.

Disclaimer: While I've played with erlang I'm not really that into it,
please correct me someone if I've misrepresented anything.

-- 
/ Peter Schuller

-- 
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


Re: Actors not good for concurrency model

2010-05-17 Thread Dave Fayram
Actors in Erlang DO have mutable state, you're just discouraged from
using it. ;) No really, erl -man get and set. Sometimes you're forced
to use this despite the best of intentions.

But I really have to ask, how composable were monads again?

- dlf

On Mon, May 17, 2010 at 3:04 AM, Peter Schuller
peter.schul...@infidyne.com wrote:
 far as i know..actors share a mutable queue.. so there's good possibility
 for dead-locks

 Actors as they work in erlang don't have mutable state (not
 intrinsically anyway, though of course you can implement an actor that
 does poke on shared data since it's your code). The 'state' in an
 erlang actor is that of parameter(s) to an infinitely tail-recursive
 function.

 Deadlock in a message passing system is still possible if you limit
 the mailbox size (unless some other means are used to prevent it). My
 understanding is that mailbox size is not limited in erlang, and that
 there is no other means to avoid deadlock, meaning that while you will
 not deadlock in the message passing system you can cause memory
 exhaustion.

 Disclaimer: While I've played with erlang I'm not really that into it,
 please correct me someone if I've misrepresented anything.

 --
 / Peter Schuller

 --
 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



-- 
-- 
Dave Fayram
dfay...@gmail.com

-- 
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


Re: Actors not good for concurrency model

2010-05-17 Thread patrickdlogan
 i don't expect it would be hard to write an Erlang program with 2
 actors that would deadlock.

Of course it wouldn't.

 as far as i know, people use timeouts on
 message handling to sweep it under the carpet.

Most people probably use the OTP library with well-defined behaviors
is what they call them. You write the functions for your application
and plug them into the libraries of well-defined messaging behavior.

-- 
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


Actors not good for concurrency model

2010-05-16 Thread Fabio Kaminski
Sorry about using the list like twitter..

but i thought this is a pretty good article about functional programming
side effects, and why actors are not very good design decision..

Actors not good for concurrency model :
http://pchiusano.blogspot.com/2010/01/actors-are-not-good-concurrency-model.html

just another prove that Rich thoughts are pretty concise ,
and that all are pretty well materialized in clojure's framework.

what convinced me to embrace clojure, is that it choose to make the right
thing , instead of the popular one..

as haskell community says wisely : avoid success at all costs  :)

-- 
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

Re: Actors not good for concurrency model

2010-05-16 Thread patrickdlogan
Nice diatribe against actors by someone who's apparently never...
actually... used... actors. Clojure is really nice, but that doesn't
mean I'm going to buy into weak arguments against features it doesn't
have in its core.


On May 16, 12:19 pm, Fabio Kaminski fabiokamin...@gmail.com wrote:
 Sorry about using the list like twitter..

 but i thought this is a pretty good article about functional programming
 side effects, and why actors are not very good design decision..

 Actors not good for concurrency model 
 :http://pchiusano.blogspot.com/2010/01/actors-are-not-good-concurrency...

 just another prove that Rich thoughts are pretty concise ,
 and that all are pretty well materialized in clojure's framework.

 what convinced me to embrace clojure, is that it choose to make the right
 thing , instead of the popular one..

 as haskell community says wisely : avoid success at all costs  :)

 --
 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 
 athttp://groups.google.com/group/clojure?hl=en

-- 
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