On 4/24/06, Logan, Patrick D <[EMAIL PROTECTED]> wrote:
> [...]
> One thing that a Ruby refactoring tool will have to do is understand
> where to find all the code. In Smalltalk this is all done through the
> "image" file which contains the code as well as references to the source
> control information about which versions are used in the application.

Image-based development makes certain tasks possible which are
extremely difficult with filesystem-driven tools, at least for
highly-dynamic languages such as Ruby. Because the on-disk and
in-memory representations of classes have effectively a one-way
relationship -- i.e., classes are *in most cases* initially created by
interpreting the source files, but they can also be built
programmatically, or modified extensively after loading -- you can't
reliably associate a certain byterange in a source file with a "live"
class or method object.

I'm still not sure how you could ever do auto-completion in a Ruby IDE
without separately annotating your classes, or implementing some
standard meta-object protocol that returned a list of methods at
runtime based on context. The widespread use of #method_missing makes
any simple parsing-based analysis woefully incomplete, especially
given its importance in key libraries such as ActiveRecord.

In general, though, I agree that the tools available to Smalltalk
developers are far more mature and featureful; to be fair, though,
they have had several decades more time to build them.

-Lennon
_______________________________________________
PDXRuby mailing list
[email protected]
IRC: #pdx.rb on irc.freenode.net
http://lists.pdxruby.org/mailman/listinfo/pdxruby

Reply via email to