Xref: utzoo comp.software-eng:3918 comp.lang.eiffel:997 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!pyrltd!root44!hrc63!mrcu!paj From: paj@mrcu (Paul Johnson) Newsgroups: comp.software-eng,comp.lang.eiffel Subject: Re: OOP and software reuse Message-ID: <558@argus.mrcu> Date: 11 Jul 90 09:10:03 GMT References: <39400113@m.cs.uiuc.edu> <112789@linus.mitre.org> Reply-To: paj@uk.co.gec-mrc (Paul Johnson) Organization: GEC-Marconi Research Centre, Great Baddow, UK Lines: 72 Summary: Expires: Sender: Followup-To: Distribution: In article jwg1@gte.com (James W. Gish) writes: ...... [Quoted argument from mitchell@community-chest.uucp (George Mitchell) about components being re-used without alteration] >This may be what we need, but with the possible exception of very >general pieces of code, I don't think we're going to get very much of >it. It is far too difficult as a designer/coder to envision how your >code is going to be used in the future, either its context or the >exact requirements imposed on it..... >I have done a fair amount of programming in Eiffel over the past year >or so. I like the language a lot. ISE, the suppliers of the Eiffel >compiler, claim to provide a library of reusable classes. The folks >at ISE have put a lot of work into the classes in an attempt to make >them reusable. I've put a lot of hours into trying to use many of >these classes. In many cases, in particular the graphics classes, it >has been a difficult and time-consuming experience. Part of the >problem is with the documentation, but even if the documentation were >perfect, a fundamental problem exists: the designers had a particular >model of computation, a particular style, a particular context, a >particular application in mind when they put together these classes. >Unfortunately, my model, my style, my context and specifically my use >of these classes didn't exactly match what was provided. I am also an Eiffel programmer who likes the language (Note: I have no other connection with ISE) and I would like to argue with you about this. I agree with your comments on the ISE graphics classes: they seem to have been hacked together for the "GOOD" browser (which isn't: I use the Curses one). Extensions are difficult, partly because too much low level stuff for them is written in C (I find this worrying: it seems like any time Eiffel does something difficult and interesting, you find it implemented in C: perhaps this will be fixed in Eiffel 3.0. I see the need for SOME C to underlie the implementation, but Eiffel 2.2 seems to contain a great deal more than necessary). I disagree with your comments about re-use in general. It may be difficult for an author with a particular application in mind to envisage all possible uses for a proposed re-usable class, but I do not think it impossible to arrive at a reasonable subset. My own mental attitude when designing re-usable classes is to imagine that I had found the proposed class in a library and ask: what facilities would I expect it to have? IMNHO the emphasis for a re-usable class must be on the concepts it supports, not on the implementation or the currently envisaged application. When the need for a class or class framework within a project is identified, the design of that class or framework should become a separate project. Meyer writes of extracting and brushing up classes after an application is finished. I disagree, and I think that the Eiffel graphics library is an example of what happens when this approach is employed. None of this should be taken as Eiffel bashing, or even ISE bashing, and certainly not Meyer bashing. Eiffel is an excellent language and ISE and Dr. Meyer are to be complimented on it. Its just the approach to class design that I don't like, and I feel that some parts of the library reflect what I see as mistakes. Paul. NOTE: I am crossposting this to comp.lang.eiffel so as to give Dr. Meyer a chance to see it and reply. If you do follow up, please consider which group(s) should see your article. TNX. PJ. -- Paul Johnson UUCP: !mcvax!ukc!gec-mrc!paj --------------------------------!-------------------------|------------------- GEC-Marconi Research is not | Telex: 995016 GECRES G | Tel: +44 245 73331 responsible for my opinions. | Inet: paj@uk.co.gec-mrc | Fax: +44 245 75244