"Dave Thomas" <Dave / pragprog.com> wrote.
>
> On Thursday, August 14, 2003, at 09:51 PM, Avi Bryant wrote:
>
> > I believe that the only way Ruby will ever be able to have the same
> > level of tool support (of any kind, whether we're talking about code
> > browsers, refactoring tools, or version control systems) that
> > Smalltalk does is by making the same sacrifice that Smalltalk did: to
> > completely avoid any form of code generation or macros.
>
> That's fascinating: you've just clarified for me why I've always found
> it difficult to stick with Smalltalk. I've tried and tried, and yet
> it's always left me feeling flat. The thing for me is that I never
> really found the tradeoff (environment power vs. language power) to
> work too well for me.

I am not convinced that there is a deep tradeoff of environment Vs. language
expressiveness and dynamism. The Lisp world back in the 80's had a
combination of superb environment (easily comparable to Smalltalk) and heavy
use of arbitrarily sophisticated code generation (Lisp macros). All parts of
the environment, including the debugger, were amazingly macro aware.

Ok, maybe it did take a $40K piece of dedicated hardware to run, but chalk
that up to plan dumb market strategy on the part of companies like
Symbolics.

Is the particular style of code generation used in Ruby more difficult? Is
environment support hard because the Ruby abstract syntax tree is
inaccessible, and code generation done by string manipulation and evals?
Personally I think the lack of an accessible AST (admittedly somewhat more
work that in Lisp) is a pretty big obstacle to tools.