Reia -- a Ruby fork?

P

pat eyler

Has anyone played around with Reia?

=A0http://github.com/tarcieri/reia/tree/master

The syntax looks so close to Ruby's in most cases, it looks more like
a Ruby fork built on the Erlang VM.

It's a ruby-like language, but not really a fork. You
can read an interview with the developer here:

http://on-ruby.blogspot.com/2009/03/reia-new-dynamic-language-on-erlang-vm.=
html

=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0trans.


--=20
thanks,
-pate
 
T

Tony Arcieri

[Note: parts of this message were removed to make it a legal post.]

It's a ruby-like language, but not really a fork. You
can read an interview with the developer here:


http://on-ruby.blogspot.com/2009/03/reia-new-dynamic-language-on-erlang-vm.html

Hi, I'm the developer.

Yes, this is correct. Reia is its own language and is not a fork of Ruby.
The syntax is heavily inspired by Ruby, however past the cosmetic level
things get very, very different.

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.
 
J

Jörg W Mittag

Trans said:
Has anyone played around with Reia?

http://github.com/tarcieri/reia/tree/master

The syntax looks so close to Ruby's in most cases, it looks more like
a Ruby fork built on the Erlang VM.

The syntax is Ruby-like, but the execution model seems very close to
Smalltalk-71.

In fact, the whole *point* of Reia is *not* to be a Ruby fork: Tony
wrote the Revactor library for Ruby, but realized that the actor model
and Ruby's object model don't mesh well. That's why he wrote Reia in
the first place.

jwm
 
J

Jörg W Mittag

Tony said:
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/>
 
T

Tony Arcieri

2009/3/17 J=F6rg W Mittag
Tony said:
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
 
S

Sean O'Halpin

reia is the first language since I first came across ruby that made my
heart skip a beat.

I have one request - more examples.

best regards,
Sean
 
L

Louis-Philippe

[Note: parts of this message were removed to make it a legal post.]

seeing the mailing thread not turn into a flame war when talking about an
other language, shows how this Reia newborn could have a future growing
close to Ruby. I wouldn't mind if Tony kept posting his development over
here.

L-P
 
M

Michal Suchanek

Hello

2009/3/17 Tony Arcieri said:
Hi, I'm the developer.

Yes, this is correct. =C2=A0Reia is its own language and is not a fork of= Ruby.
The syntax is heavily inspired by Ruby, however past the cosmetic level
things get very, very different.

Reia runs on the Erlang VM and attempts to use the object system itself a= s
the concurrency mechanism. =C2=A0All objects in Reia execute concurrently= and
synchronize with messaging.


Is it possible to install outside of the Erlang lib directory (ie as non-ro=
ot)?

Thanks

Michal
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,119
Latest member
IrmaNorcro
Top