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

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



> From: "Anton van Straaten" <anton@appsolutions.com>
> Date: Thu, 8 Aug 2002 02:12:07 -0400
> Content-Type: text/plain;
> 	charset="iso-8859-1"
> X-Priority: 3 (Normal)
> X-MSMail-Priority: Normal
> Importance: Normal
> X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200
> Sender: owner-ll1-discuss@ai.mit.edu
> Precedence: bulk
> 
> > While I agree that interfaces are important in Java, i miss mixins and
> > multiple inheritance as in Common Lisp, for example.  In Java you need to
> > implement the interface over and over.
> 
> Oh definitely.  Not having support for any implementation reuse mechanism
> other than single inheritance is a harsh restriction, in a system that
> supports multiple interfaces on classes, and I'm sure it inhibits use of
> interfaces in Java.  I didn't mean to imply that Java was unassailable in
> this respect, but if you don't look to closely at the implemenation side of
> things ;) it's an example of the interface-oriented approach having
> succeeded in practice.

Sather is an OO language which has an interesting approach to separating
interface from implementation.  In sather, subtyping is explicitly
unrelated to code inheritance (like a java interface); code inheritance is
handled by a separate mechanism of code inclusion.  Among other things,
this makes the problem of multiple inheritance diamond inheritance graphs
go away (or so I gather from what I've read; I've never used sather on any
serious projects).  It seems like an elegant best-of-both-worlds solution.
Here's a tutorial:

http://www.gnu.org/software/sather/Doc/tutorial.html/

Unfortunately sather seems quite moribund now, if not quite dead.

Mike