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.

Reply via email to