Refactoring Browser maintenance (also relevant for other projects)

Andrew P. Black black at cse.ogi.edu
Fri May 17 19:15:48 UTC 2002


I have just tried to use the refactoring browser ... got a walkback 
that I couldn't understand ... went to my email archives to see if 
there is a newer version ... read the discussion between DanielV and 
Stéphane about the right way to maintain it ... and am left feeling 
rather unhappy.

As I understand it, the current state is that the "official" 
distrbution is known not to work, but that

Daniel is right, I think, that the RB is too complex just to be 
treated as a goodie and left to take care of itself.  Last fall 
Nathaniel and myself spent about three days trying (and failing) to 
track down what we thought would be a simple bug in the abstract 
instance variable refactoring -- and Nathaniel is really good at this 
stuff!  In the end, he decided that it was simpler to start from the 
parser in the compiler to implement this particular refactoring than 
to track down the bug.

For those who have not looked at RB, there are two main parts, in 
addition to the UI:  a parser that matches patterns like '`@method: 
`@Args ^super `@method: `@Args' and a set of definitions of the 
various refactorings in terms of the parser patterns.  So, when 
something does not work in the expected way, it is hard for the 
uninitiated tell which part is going wrong, and therefor which part 
to fix; "fixing" the wrong part would indeed rapidly lead to code rot.

So I agree with Daniel's posting: RB needs someone who understands 
the framework to coordinate the process of debugging it and 
maintaining it.

The reason that I'm unhappy is that no one has stepped forward.  We 
all have our real work to do, I suppose.   And yet: here is a GOOD 
IDEA (refactoring) that has been invented by the Smalltalk community 
and from which all of our code would benefit ...

What can be done?  I think that making RB depend on stable 
DeltaModules might be Error 33...

	Andrew





More information about the Squeak-dev mailing list