Diamond patterns only arise in multiple inheritance. We have no plans to
do multiple inheritance in BitC.

Proper abstraction support in the language, properly used, can avoid
many of the other issues. Objects definitely are not the right answer to
all problems. Unfortunately, in C++ and Java they are the only answer
available. The SmallTalk "Number" class, for example, is a great example
of something that shouldn't be an object at all, because the object
abstraction pattern doesn't fit the objectives.

The motivating case for objects from our perspective is actually the
need for a carefully restricted from of existential types.

So to answer your question: I think we have alternatives that fill some
of the gaps, but in general, no, I don't think that we have any grand
new inventions in the area of objects. What is really happening here is
that implementing this very relatively simplistic object system proves
to be much simpler than generalized existential types, and addresses all
of the use cases that concern us.

shap


On Fri, 2008-09-12 at 12:35 -0700, Raoul Duke wrote:
> hi,
> 
> > The issue that I have NOT addressed here is the issue of subtyping and
> > supporting syntax. That clearly needs to be addressed, and we will
> > address it in a future note.
> 
> Does that mean y'all have it worked out already? I am concerned, given
> how fraught-with-peril most OO implementations really are (fragile
> base classes, diamond problems, yadda cubed), that adding objects to
> BitC could start to add some unfortunate gotchyas. If you have plans
> to address those things, that would be great :-)
> 
> sincerely.
> _______________________________________________
> bitc-dev mailing list
> [email protected]
> http://www.coyotos.org/mailman/listinfo/bitc-dev

_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to