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
