[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