From: "Jörg W Mittag" Date: 2009-03-18T04:32:30+09:00 Subject: Re: Reia -- a Ruby fork? 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 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] [3]