[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Java interface natural history was RE: "static" declaration

Ken Anderson wrote:

> Are you saying that no body with experience with Common Lisp, said to 
> you something like "I miss multiple inheritance"?

This particular software system had no need of multiple inheritance. 
 Multiple inheritance
is a great way to deal with certain modularity needs.  We did not have 
those needs.
We didn't need a Runge-Kutte algorithm either; nothing wrong with R-K 
but it just
didn't come up in this particular project.

>   And nobody complained that they had to implement an interface 
> multiple times. 

Well, if there were two implementations that were entirely different, 
then there
was nothing to complain about. If there were implementations with code in
common, we made a base class and inherited from it.  People did complain,
as I say, about having to have an interface and also have a base class. 
say, why can't we just make the base class be an abstract class and use 
that as
the type?  My answer: because someday someone might want to make an
implementation of this type that has no need to share any implementation 
the existing base class.

> My analysis of rt.jar was just an intro.  When i checked that i had 
> several hundred .jar files on my machine (many more than a year old), 
> i didn't want to analyze them all.
> I'm open to studying whatever jar's anyone suggests, I'm interested in 
> the natural history of real programs. 

Well, I'm not sure how much Java is written in the style that I 
advocate, i.e. a style that stresses
using interfaces rather than base classes as types.