On Tuesday, February 01, 2011 05:42:42 pm Steve Klabnik wrote:
> David, right now, they're 100% intertwined. That's the way that _why liked
> it.

Ok. The question is why he liked it, if you'll pardon the pun.

> Not only that, it's actually pretty integral to how Shoes works. It's
> largely C code that exposes a Ruby that's slightly different...
> http://shoesrb.com/manual/Rules.html see "Shoes tricky blocks"

My first impression is, those don't look terribly tricky, at least as far as 
implementation. self is changed via instance_eval. The "trick" of redirecting 
drawing seems like an implementation detail, not of the language, but of 
whatever classes you use to implement the DSL.

Scrolling down, the only thing I see that looks tricky at all is the UTF-8 
support, and you'd think it would make sense to just use the Unicode support 
that's built into 1.9, rather than having an entirely different version of 
your own. In fact, it seems like this would cause a lot of problems for gems 
I'd want to use _in_ a Shoes app.

If there's something I'm missing that absolutely has to modify the language in 
C, is there a reason it couldn't be implemented as an extension and scoped to 
Shoes?

I don't mean to imply that the work involved would be trivial. I have 
absolutely no idea how much work it would be. I just don't see any major 
blockers here -- I really don't see a good reason why Shoes should carry its 
own version of Ruby, when we have all sorts of other GUI toolkits, application 
frameworks, and DSLs distributed as plain old gems.