I also like this uniform because it's easier to program, Up to now i haven't had the need to separate them.
2013/6/30 Tudor Girba <[email protected]> > +1 > > Keeping things uniform is a plus in this case, even though we might lose > some flexibility. > > Doru > > > On Sun, Jun 30, 2013 at 9:01 AM, Stéphane Ducasse < > [email protected]> wrote: > >> Ok I slept and now my brain is working. >> I think that having classTrait and trait together is important because >> else it would be the mess when >> you have a class method that uses an instance methods (both define in a >> trait). >> So conceptually this is one trait like in smalltalk you have one class >> and its metaclass. >> >> The model is similar and to represent class trait we have a ClassTrait >> class. >> >> Stef >> >> >> On Jun 30, 2013, at 1:04 AM, Camillo Bruni <[email protected]> >> wrote: >> >> > so let's discuss that on monday with the trait specialists Damien et >> Sebastian :) >> > >> > On 2013-06-29, at 23:34, Igor Stasenko <[email protected]> wrote: >> >> yes, i don't know if it good or bad, but i'd rather prefer that traits >> >> applied to Behavior, >> >> but not to Class (which has two entangled behaviors). But maybe for >> >> human comprehension it is better.. >> >> but not for implementing, because it certainly makes model more >> complex. >> >> >> >> On 29 June 2013 22:52, Camillo Bruni <[email protected]> wrote: >> >>> >> >>> On 2013-06-29, at 22:32, Igor Stasenko <[email protected]> wrote: >> >>> >> >>>> On 29 June 2013 21:21, Stéphane Ducasse <[email protected]> >> wrote: >> >>>>> >> >>>>> On Jun 29, 2013, at 8:19 PM, Igor Stasenko <[email protected]> >> wrote: >> >>>>> >> >>>>>> On 29 June 2013 20:12, Camillo Bruni <[email protected]> >> wrote: >> >>>>>>> Working on the new class builder I have a hard time figuring out >> the full trait >> >>>>>>> semantics. >> >>>>>>> >> >>>>>>> If I use a trait on instance side, does that imply that its >> classTrait on the >> >>>>>>> metaclass? >> >>>>> >> >>>>> No. I do not think so (I will have to think). >> >>>>> Normally Trait and ClassTrait are two different classes. NOw I do >> not remember if a trait is composed >> >>>>> of a classTrait too. >> >>>>> >> >>>> Trait has 'classTrait' >> >>> >> >>> yes, but the strange part is, that if you use a Trait on the >> instance-side it >> >>> will automatically install the class trait as well. >> >>> >> >>> ClassDescription subclass: #Class >> >>> uses: TClass >> >>> ... >> >>> >> >>> and the users >> >>> >> >>> TClass users => an IdentitySet(Class) >> >>> TClass classTrait users => an IdentitySet(Class class) >> >>> >> >>> so in this case it implies that when you use a Trait on the instance >> side it will >> >>> apply also it's classTrait to the class side. So is it ok then to >> enforce that in >> >>> the new class builder? >> >>> >> >>> Currently you can do the following in the new class builder: >> >>> >> >>> PharoClassInstaller make: [:builder| >> >>> builder >> >>> superclass: Object; >> >>> name: 'Foo'; >> >>> traitComposition: TClass ] >> >>> >> >>> which will explicitely NOT install `TClass classTrait` in `Foo class`. >> >>> Does this behavior make sense? >> >> >> >> >> >> >> >> -- >> >> Best regards, >> >> Igor Stasenko. >> >> >> > >> > >> >> >> > > > -- > www.tudorgirba.com > > "Every thing has its own flow" >
