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
