On Wed, 26 Jan 2005 00:10:49 +0900, itsme213 <itsme213 / hotmail.com> wrote:
> 
> "Pit Capitain" <pit / capitain.de> wrote
> > Lothar Scholz schrieb:
> > > CS> On Tue, 25 Jan 2005, Mathieu Bouchard wrote:
> > > CS> Of course, creating something like this is much harder in a language
> > > CS> like Ruby where objects are ever-changing and ever-malliable
> > ..
> > > 100% ACK.
> > > As a toolwriter i often get requests: I want a good working
> > > refactoring browsers, where are the code tooltips,
> > > can't you integrate a ruby lint etc.
> > >
> > > These tools all need a type inference engine and this is a huge task.
> > ..
> >
> > I'm sure you know where the original refactoring browser came from. Your
> last
> > statement is simply wrong.
> 
> Smalltalk's refactoring browser is image-based. The environment is working
> on the end-result of all dynamic stuff (with the effective source
> representation of that end-result). If you have dynamically added a method
> to a class, that method shows up in the browser (I think!).
> 
> Wouldn't it be far more difficult to implement such a tool based solely on
> the source-code that caused all that dynamic stuff to happen in the first
> place.
> 
> Is image-based tooling a mismatch for Ruby? Hmmm.
> 
> 

This is the impression I've gotten- that a live image system uses the
objects that exist while programming against a live system to do code
completion, etc. In effect, this is what irb completion does.

As for the inference engine, I'd be very happy with a 80% accurate
solution- e.g. the really dumb cases. It would offer a great
performance boost, IMHO.

I have to admit though- the level of trust I have with the IntelliJ
IDEA refactoring tools is so high, I never think twice about
refactoring. However, with unit tests and version control in the ruby
world, I would be pretty comfortable as well. All I need is a good
impact report with a "Do it!" button.

Interestingly, Rails seems to be evolving into a pseudo-image-like
system, with class reloads and breakpoints that spawn irb sessions.
Conceivably an editor could be smart enough to bind to the running
environment.

Regards,
Nick
-- 
Nicholas Van Weerdenburg