Tony Arcieri wrote:
> On Mon, Feb 16, 2009 at 1:31 PM, Brian Candler <b.candler / pobox.com> wrote:
>
>   
>> - maybe you should poll (say) Erlang users about what their favourite
>> features are of that language
>>
>>     
>
> Well, in my case, my language is running on the Erlang VM (
> http://wiki.reia-lang.org) and will have all the features of Erlang and then
> some.
>   

Reia! I thought your name sounded familiar.

Here's my own list. I did fill out the questionnaire, but I'm not sure 
which of these were covered:

I like Ruby's relaxed syntax. I like letting things like parentheses be 
implied, leading to interesting, emergent phenomena like hashes as named 
arguments. (Not that I would complain if the language implemented named 
arguments -- even better if I don't have to use them as a hash -- so 
long as I can if I need to.)

I like the ability to create good-looking DSLs, but that's similar to 
the above.

The biggest thing I like from Python, and miss in Ruby, is significant 
indentation. Having a ton of end statements at the end of a file isn't 
particularly DRY, and I tend to have consistent indentation anyway.

The biggest thing I like from Javascript, and miss in Ruby, is 
prototypal inheritance and the near lack of a type system. There's no 
difference between a proc, a block, a function, and a method, and I can 
take any function, and apply it as a method to any object.

I also like things like Rubinius. I'd love to be able to dig deep into 
something like Reia without needing to use Erlang, just as I can usually 
dig into Ruby without needing C.

One thing I like from Erlang, and hope Reia keeps, in some form: 
Reloading modules on the fly.

This may be difficult, though -- technically it's possible in Ruby, but 
Ruby is dynamic enough that the sanest way has been Merb's approach of 
loading all of the library and framework code (everything except your 
app), then forking, then loading your app. When you want to make a 
change to your app, it kills the child, forks again, and loads your 
code, rather than try to patch a new version of your code onto the old....

Probably your best bet is to make it possible, and let other solutions 
be developed on top of that capability.

I love the idea of Reia, and can't wait to see where it goes. It's not 
yet polished enough to be used at work, and I've been impatient enough 
that I've started trying to write an actor library in Ruby. It's going 
very, very slowly.