C# and .NET 1.0 had the same scheme but you were always checking if the type is correct , casting and sometimes boxing ( since object is a reference type) and generics gave quite a nice boost . Also as I said interfaces are important here ( eg 1 or 2 members / fields tied to a type but multiple interfaces) and I would prefer them to Inheritance if a choice had to be made.
Personally I think in 2000 you could get away with just inheritance but not any more . The real question is can you get away with them in v1 of Bitc and promise something better ? Ben > -----Original Message----- > From: [email protected] [mailto:bitc-dev- > [email protected]] On Behalf Of Matt Rice > Sent: Friday, April 01, 2011 8:56 AM > To: Discussions about the BitC language > Cc: Jonathan S. Shapiro > Subject: Re: [bitc-dev] Type classes > > On Wed, Mar 30, 2011 at 7:02 PM, Jonathan S. Shapiro <[email protected]> > wrote: > > is single inheritance and overloading sufficient? > > I really hate to make this comparison, > > but if you consider objective-c which uses the smalltalk object model, it only > has single inheritance, no overloading, and no templates/generics > > It gets away with this through 2 concepts, dynamic dispatch, and an utter lack > of type safety, 'everything is an object'. > > with type variables in place, changing 'everything is an object' to 'everything > is of some type'. you must add overloading which gives us dispatch though > not dynamic. > > squint your eyes, and you have a rough equivalence to something which has > proven to be sufficient (within the universe where it has been accepted.), > the major difference is the lack of dynamic dispatch, which is not something > type classes is just going to give you. > > I personally find it sufficient. > > (I don't know smalltalk but do know objective-c so didn't want to make the > comparison directly) > > note: objective-c has something roughly equivalent type classes which they > call 'protocols', these were added to give some mediocre amount of type > safety to an otherwise unsafe language (to ensure that an object > implements the methods required). > _______________________________________________ > 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
