Path: utzoo!attcan!uunet!mcvax!ukc!dcl-cs!neil
From: neil@comp.lancs.ac.uk (Neil Haddley)
Newsgroups: comp.lang.smalltalk
Subject: Software Reuse 2
Message-ID: <552@dcl-csvax.comp.lancs.ac.uk>
Date: 16 Aug 88 11:21:47 GMT
Reply-To: neil@comp.lancs.ac.uk (Neil Haddley)
Organization: Department of Computing at Lancaster University, UK.
Lines: 86

All,         
	Firstly thank you to all those  who  replied  to  my
earlier posting.

        To refresh your memory I asked for comments on:

        "The  Inheritance  mechanism  of  Smalltalk   and   other
	Object-Oriented  programming  languages provides signifi-
	cant support for code level Software Reuse"

To tell you the honest my last mail message a  little  'over  the
top' in an attempt to gain a greater reaction. Seriously though I
do still feel that the wonders of inheritance are being over sold
by  some.  I would still love to gain more of an insight into how
inheritance is really used. What do real class inheritance  trees
look  like  ?  How  deep  are  they  on average ?  How useful are
Abstract Classes etc. Perhaps it would be interesting to  analyse
a  number  of  real  class  inheritance  trees (could you send me
some?)

A few points from some of the people kind enough to reply (Please
pardon the out of context nature of these quotes) :

"I have done significant work in Ada, C and Smalltalk, and am be-
ginning  to use C++.  The Smalltalk inheritance mechanism, indeed
any inheritance mechanism, provides adequate support  for  reuse,
however,  considerable  discipline is required to make it work in
practice, and other object-oriented mechanisms  aid  reuse  to  a
similar  degree.   It  is  very easy to write Smalltalk code that
cannot effectively be re-used ... as a user of several  languages
that  claim reuseability, I believe Smalltalk is the best by far,
but not just because of inheritance."

Jan Steinman (jans@tekcrl.TEK.COM)

"Some issues:
  + Can it be done (with another mechanism)
  + How easily is it done...

Next question: how often is the full power needed?"

David Keppel (pardo@cs.washington.edu)

"In Smalltalk, method lookup is done at the last possible  moment
(i.e.,  when  you need to evaluate a message send), thus reuse is
not a feature of the language that can  be  taken  advantage  of;
rather  it is a prescribed mechanism which *comes for free* (some
might say that  is  a  "paradigm"  of  o-o  programming)...   the
"reuse"  power of Smalltalk comes from the fact that the program-
ming methodology points towards extension and incrementality"

David Laukee (laukee%uucp.softeng%uk.ac.york.minster@uk.ac.rdg)

"I think that the biggest advantage Smalltalk  has  in  promoting
software reuse is that the Smalltalk environment makes it easy to
find the code that does what you want.  It does this by virtue of
a  hierarchical  system  of code classification (of which classes
are only a part) and of nifty tools (e.g. the System Browser)  to
examine the hierarchy.

To the extent that the inheritance mechanism encourages new class
formation and classes are part of the code hierarchy, inheritance
supports code reuse. By itself however,  inheritance  doesn't  do
much."

Mark Friedman (markf@zurich.ai.mit.edu)

Very many thanks to the above, I hope this has been interesting.

As Lewis Carol might have put it:

White Knight: "People think that  the  Inheritance  mechanism  of
	       Smalltalk and other Object-Oriented programming
	       languages provides significant support  for  code
               level Software Reuse or or ..."

Alice:        "Or ?"

White Knight: "Or they don't"


Neil Haddley
-- 
EMAIL:	neil@comp.lancs.ac.uk		| Post: University of Lancaster,
UUCP:	...!mcvax!ukc!dcl-cs!neil	|	Department of Computing,
					|	Bailrigg, Lancaster, UK.