[IDE features]
Richard A. O'Keefe
ok@atlas.otago.ac.nz
Thu, 4 Feb 1999 11:57:53 +1300 (NZDT)
Erik Zurrbier wrote
My original idea was to support tidying up a program.
So I would not strive for an IDE to support *any* change.
Are you suggesting _different_ interfaces for adaptive maintenance
and perfective maintenance? I don't think I'd like that. I'm not
sure that I can draw a neat line between "tidying up" and other
changes to a program; certainly when I've _thought_ I was tidying
up I've run into bugs more often than I care to recall.
>If I edit a function and change the type of one of the
>parameters, what should the IDE do about the callers then?
>The best it can do is _find_ all the callers (in Interlisp:
>.EDIT WHERE ANY CALLS <function name>
>) and give you the chance to change them.
Sounds good. Does that also expose the callers in other projects?
"Project" is not a concept in Interlisp, and indeed you have exposed one
of the fatal problems with the 'project' concept. An IDE _might_ be able
to keep track of the internal interfaces in a cluster of related units,
but it _cannot_ help you with external interfaces; the code that needs
changing to match the changed interface might not exist yet, someone
might be designing it three continents away from the current documentation.
Suppose I have a public interface that I want to implement in Clean, but
it is convenient to split the implementation into several files. For
simplicity, let's consider
foo.dcf exports X and Y
foo_x.icf: implements X using C (shared with foo_y) and D (private)
foo_y.icf: implements Y using C (shared with foo_x) and E (private)
I know how to do that in Ada; how do I do it in Clean?