Tony Arcieri
3/17/2009 11:25:00 PM
2009/3/17 J=F6rg W Mittag
<JoergWMittag+Usenet@googlemail.com<JoergWMittag%2BUsenet@googlemail.com>
>
> Tony Arcieri wrote:
> > Reia runs on the Erlang VM and attempts to use the object system itself
> as
> > the concurrency mechanism. All objects in Reia execute concurrently an=
d
> > synchronize with messaging.
>
> Talk about coming full circle ...
>
> In Smalltalk-71, Alan Kay experimented with having each object running
> in its own process and communicating with asynchronous message
> sends[1]. There is an older quote from Alan Kay, where he says that
> one thing he very much regrets, is not emphasizing the message sending
> aspect of object-orientation enough. And just recently, he said that
> not running objects in parallel, was one of the biggest mistakes of
> Smalltalk, and indeed, that's what his new system (STEPS Toward the
> Reinvention of Programming[2], at the Viewpoints Research
> Institute[3]) does.
>
Interesting. I've enjoyed Alan Kay's remarks on the matter, particularly
this one:
> "I thought of objects being like biological cells and/or individual
> computers on a network, only able to communicate with messages (so messag=
ing
> came at the very beginning -- it took a while to see how to do messaging =
in
> a programming language efficiently enough to be useful)."
> =97 *Alan Kay*
>
*
*...however I was completely unaware he was working on a concurrent object
system as well.
That's some excellent background info, thanks!
> Smalltalk-71 was what inspired Carl Hewitt to invent the Actor Model.
> Now =96 he basically believed that the ideas of Smalltalk-71 were good,
> but the model was *much* too complex. Now, Ruby, a very faithful
> implementation of the Smalltalk object model, and Erlang, a very
> faithful implementation of the Actor Model, combine and produce Reia,
> an object-oriented parallel actor language, in which the concepts of
> process =3D=3D actor =3D=3D object have been unified, just like in
> Smalltalk-71.
>
That's the goal, although keep in mind process and objects are not fully
unified in Reia. Objects are processes which talk a common protocol, but
you're still free to write fully asynchronous processes just as you would i=
n
Erlang. Objects can still receive raw messages sent using Erlang's actor
protocol and can also send them, so using the two in conjunction isn't
particularly difficult. Asynchronous alternatives are also provided for al=
l
parts of method dispatch, so objects too can be used asynchronously.
--=20
Tony Arcieri
medioh.com