From: Tony Arcieri Date: 2009-03-18T08:25:02+09:00 Subject: Re: Reia -- a Ruby fork? --00151750e4d87b7e0b046558e936 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable 2009/3/17 J=F6rg W Mittag > > 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 --00151750e4d87b7e0b046558e936--