On Sat, Jan 15, 2011 at 3:45 PM, David Masover <ninja / slaphack.com> wrote:

> Reia has a good answer for that, incidentally, which was my other complaint
> about Ruby -- in Reia, as I understand it, every object is an actor. This
> at
> the very least forces a different standard library, and so many Rubyisms
> wouldn't work that by the time you had a version of Ruby running on Erlang,
> it
> would look so different from Ruby on MRI that it'd hardly be worth calling
> Ruby.


In Reia, everything (including objects) falls into two fundamental
categories: immutable data, or concurrent processes (i.e. actors).

In its original incarnation, it's true that all objects were actors.
However, this is no longer true. I haven't yet reimplemented
concurrent-objects-as-actors, and instead the only objects presently
available in the language are implemented as immutable data only.

Ruby, interestingly enough, generally views state as immutable data. You
generally have to explicitly specify you want to mutate state by placing a !
on the end of a method name (e.g. Array#reverse vs Array#reverse!). Most
operations are not mutable by default, but instead return new versions of
the object in question with the given transformation applied.

The differences between Ruby and Erlang are not as large as many would make
them seem (particularly in the Erlang camp)

-- 
Tony Arcieri
Medioh! Kudelski