On Tue, Oct 12, 2010 at 10:43:44PM +0200, Leon Timmermans wrote:
> On Tue, Oct 12, 2010 at 4:22 PM, Damian Conway <dam...@conway.org> wrote:
> > The problem is: while most people can agree on what have proved to be
> > unsatisfactory threading models, not many people can seem to agree on
> > what would constititute a satisfactory threading model (or, possibly, 
> > models).
> >
> > What we really need is some anecdotal evidence from folks who are actually
> > using threading in real-world situations (in *any* languages). What has 
> > worked
> > in practice? What has worked well? What was painful? What was error-prone?
> > And for which kinds of tasks?
> 
> Most languages either implement concurrency in a way that's not very
> useful (CPython, CRuby) or implement it in a way that's slightly
> (Java/C/C++) to totally (perl 5) insane. Erlang is the only language
> I've worked with whose threads I really like, but sadly it's rather
> weak at a lot of other things.
> 
> In general, I don't feel that a shared memory model is a good fit for
> a high level language. I'm very much a proponent of message passing.
> Unlike shared memory, it's actually easier to do the right thing than
> not. Implementing it correctly and efficiently is not easier than
> doing a shared memory system though in my experience (I'm busy
> implementing it on top of ithreads; yeah I'm masochist like that).
> 
> > And we also need to stand back a little further and ask: is "threading"
> > the right approach at all? Do threads work in *any* language? Are there
> > better metaphors?
> >
> > Perhaps we need to think more Perlishly and reframe the entire question.
> > Not: "What threading model do we need?", but: "What kinds of non-sequential
> > programming tasks do we want to make easy...and how would we like to be
> > able to specify those tasks?"
> 
> I agree. I would prefer implicit over explicit concurrency wherever possible.

I know you're speaking about the Perl interface to concurrency, but
you seem to contradict yourself because message passing is explicit
whereas shared memory is implicit - two different models, both of
which could be used together to implement a pretty flexible system.

It'd be a shame to not provide a way to both use threads directly or
to fallback to some implicitly concurrent constructs.

Brett

-- 
B. Estrade <estr...@gmail.com>

Reply via email to