Sweet, sweet Reia

Reia is sweet. At first glance, it looks like Ruby with parenthesis and pattern matching. Pattern matching! From my brief stints with SML (and Erlang,) I’ve longed to take pattern matching back with me to every language I use.

At second glance — well, I’m still in the midst of taking a second glance, actually. But, here, some encouraging words:

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.
- Tony Arcieri (Reia developer)

Concurrent objects? Huzzah! Jörg W Mittag, please tell us more:

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

Smalltalk-71 was what inspired Carl Hewitt to invent the Actor Model. … 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.

Interesting.

I already had Erlang on my list of languages to learn, as the functional style woos (if you’re into that sort of thing). Still, Reia looks comfortable and fun. I’ll have to finish my current glance and perhaps take a few more at it…