lagrone@dseg.ti.com (David LaGrone) writes:
> Organization: Texas Instruments Incorporated, DSEG HRD Computer Systems Training
> Date: Mon, 28 Jun 1993 18:15:22 GMT
> ....
> I don't discount that inheritance makes a contribution to this; however,
> my point is that I don't believe that I get as much lift from inheri-
> tance as I do from abstraction...and I believe that I can build my
> abstraction without inheritance. (NOT that I necessarily WOULD! But,
> I could.)
And you don't need an OOP language to give you support for
abstraction. It's a requirement for *any* well structured language
providing user-defined datatypes. (E.g. ML ?)
Good support for inheritance (especially multiple inheritance
combined with multi-methods) is much harder to provide: the main
*lift* it provides is re-usability of the same code for different
data-types. Without proper support for inheritance, it's hard, for
example, to make a single change to the structure or behaviour of a
high level class knowing that the corresponding changes will be made
automatically to all the descendants. So you have to propagate the
changes by hand, i.e. re-writing all the special cases. That's a
recipe for error and inconsistency.
A nice example is provided by the paragraph formats in FrameMaker:
they allow you to do a certain amount of abstraction (i.e. define
your own special paragrph formats). But because they lack
inheritance it is a *real pain* to do certain sorts of style
changes: several different format definitions may have to be
changed separately by hand. If a proper inheritance mechanism were
provided one high level change would suffice (e.g. changing from
Times to Helvetica for a group of related paragraph formats.)
Aaron
Aaron
--
Aaron Sloman,
School of Computer Science, The University of Birmingham, B15 2TT, England
EMAIL A.Sloman@cs.bham.ac.uk OR A.Sloman@bham.ac.uk
Phone: +44-(0)21-414-3711 Fax: +44-(0)21-414-4281
|