Is Ruby a lesser Smalltalk? Well I use to think so, but now, after using Ruby for a while, I'm not so sure. Well Smalltalk definitely excels when it comes to tools, but as with Java, Ruby's increasing success will mean that better Ruby tools are sure to appear soon.
The reason why I'm not so sure is the ability to define higher order functions in Ruby, in much the same way you would with Lisp. For those that don't know, a higher order function is a function that writes functions, so code that writes code. Rails uses this technique all over the place. For example the famous scaffold method is a second order function. Your Controller class writes itself when it gets defined at runtime. AFAIK this just isn't possible in Smalltalk or is it? Why is this important? Because you can add new control structures to your language, extending the language and creating DSLs in much the same way you can with Lisp macros.
It looks as though Ruby is a true successor to Lisp in a way that Smalltalk never has been. Is this true or am I missing something?