Tony A. 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 and
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.
In one of his talks, he demonstrated a nice text layout algorithm,
where every single letter is just a simple object, with insect-like
behavior and just two instincts: follow your predecessor and go as
high as possible, which leads to results comparable in quality to
LaTeX, but in only 6 lines of code.
Smalltalk-71 was what inspired Carl Hewitt to invent the Actor Model.
Now – 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 == actor == object have been unified, just like in
Smalltalk-71.
jwm
[1] In fact, that’s where the whole confusing terminology of “sending
messages” instead of “calling methods” comes from. Nowadays, it
doesn’t make sense, of course: since method calls in Smalltalk
or Ruby aren’t asynchronous, they are just method calls, not
message sends.
[2] http://VPRI.Org/pdf/tr2007008_steps.pdf
[3] http://VPRI.Org/