On Mon, Mar 23, 2009 at 11:39 AM, Antony Blakey <antony.blakey@gmail.com> wrote:

On 23/03/2009, at 7:37 AM, Michael van der Gulik wrote:



> Smalltalk, the language rather than the implementation, already has
> fantastic support for concurrency. Smalltalkers just don't know how
> to use it. We don't need to rethink the model, we just need to learn
> to use what we have.

Mutexes and semaphores are hardly 'fantastic'. The state of the art in
support for concurrency is way beyond what Smalltalk provides -
locking is both primitive and generally not scalable.


Semaphores _are_ fantastic!! Lock-free algorithms are even cooler.

The language lends itself to building up higher abstractions. Take for example Collection and all its subclasses; they're screaming out to have parallelised versions made:

c := ConcurrentOrderedCollection new.
c do: [ :each | ...this part gets executed in parallel...].

The caveat here is that you need to be careful about side-effects.

This is just one example. I have some more rudimentary ideas at:
http://gulik.pbwiki.com/Parallel+processing.

Oh, and sorry to the Pharo guys for keeping this going. Let us know if you don't want threads like this on your list.

Gulik.


--
http://gulik.pbwiki.com/