I'm at, of all places, the Scandinavian conference on Java And Object-Orientation (JAOO). Somebody stumbled upon the How To Be Lazy tutorial and thought I knew something about design methodologies. If nothing else it has the unique advantage of not being in New York.
So who do I meet here but Martin Fowler, Mr. Refactoring. I managed to bend his ear for a while on the subject of making a refactoring code browser for Perl, like Smalltalk has. Turns out we're COMPLETELY overthinking the problem. For example. How do you change the name of a class's method and all places that method is called if two classes have method of the same name? ie. You've got Foo::this() and Bar::this() and you want to change Foo::this() to Foo::that() but leave Bar::that() the same. What do you do with: $obj->this Having no idea what class $obj might be of, you have to just eyeball it. So that kills the possiblity of automated Perl refactoring. -->But it doesn't<-- It turns out Smalltalk has the *exact same problem*, and Java does, too. How do they solve it? *They don't*. What they instead do is tell you all the implementors of a given name (so for 'this' it would tell you 'Foo' and 'Bar'). Then you have two choices. 1) Change this() to that() in both 'Foo' and 'Bar', and change all instances of $obj->this to $obj->that. 2) Walk through each call to $obj->this and decide if it should be changed to $obj->that. That's it. And the refactoring browser just helps you with the mechanics of that. THAT'S SO EASY! If it works for them, it can work for us. So, I can handle the underlying mechanics no problem. Who's good at GUIs? -- Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/ Perl6 Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One First day in Prison Back behind the shower door Adhesive applied -- ignatz