On Tuesday, July 19, 2011 05:41:47 PM Alexey Petrushin wrote:
> UPD, this one seems to be interesting and is very active. And (a big
> plus), it generates human readable js.
> 
> https://github.com/adambeynon/opal

I remember starting a project like this. I more or less gave up when I 
realized there didn't seem to be a good way to have it continue to generate 
human-readable JS, and also support continuations.

This seems to suffer from the same limitation. Notice there's no enumerators. 
In MRI, I can do stuff like this:

ruby-1.9.2-p180 :010 > (1..10).each_cons(2).to_a
 => [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6], [6, 7], [7, 8], [8, 9], [9, 10]] 

Opal doesn't do that -- all of the enumerable methods (each and friends) 
simply die if I don't pass a block.

I guess if that ends up being the only edge case, and people are OK with this, 
it makes sense. But it seems like the more weird corner cases like this, the 
less benefit there is to trying to pretend it's a full-fledged Ruby. Even if 
your gems don't hit any of the corner cases imposed by the interpreter itself, 
you're still running in a restricted environment that may pose its own 
problems...

Maybe it would be better to create a language specifically designed to work 
well in that environment -- to build on the good ideas from JavaScript, give 
us Ruby-esque syntactic sugar, but to stick close enough that the resulting 
JavaScript makes sense and is debuggable... and I just described CoffeeScript.

So, it looks really, really cool, but I think I'm still going to use 
CoffeeScript if I use anything beyond pure JS.