So can somebody smart explain to me the following
before in Squeak incomingInvocations was
incomingInvocations incomingInvocations isNil ifTrue: [ incomingInvocations := OrderedCollection new ].
in oscar changes it is
incomingInvocations <MSEProperty: #incomingInvocations type: #FAMIXInvocation opposite: #candidates> <mulivalued> <derived> ^ incomingInvocations values
So what should I do. Because now I do not know! But I'm certainly stupid for sure.
What I know is that this metastuff gets in our way. I do not care about reproducing complete code (which we cannot in FAME because lazy initialization and other useful code level idioms are not represented) and now instead of focusing on Moose I have to deal with meta representation concerns. Really I think that we got trapped there. Knowing where to stop is as important as doing it. Next time I will fight really hard against any smart cleaner cooler meta meta stuff. Which is sad because I know what I'm talking about.
Stef
Hm.
Not sure which way it was in VW. My tendency is to throw away lazy initialization unless someone can prove that it is needed.
I prefer to always see a comment explaining *why* lazy initialization is right.
Cheers, - on
On Sep 4, 2008, at 14:27, Stéphane Ducasse wrote:
So can somebody smart explain to me the following
before in Squeak incomingInvocations was
incomingInvocations incomingInvocations isNil ifTrue: [ incomingInvocations := OrderedCollection new ].
in oscar changes it is
incomingInvocations <MSEProperty: #incomingInvocations type: #FAMIXInvocation opposite: #candidates> <mulivalued> <derived> ^ incomingInvocations values
So what should I do. Because now I do not know! But I'm certainly stupid for sure.
What I know is that this metastuff gets in our way. I do not care about reproducing complete code (which we cannot in FAME because lazy initialization and other useful code level idioms are not represented) and now instead of focusing on Moose I have to deal with meta representation concerns. Really I think that we got trapped there. Knowing where to stop is as important as doing it. Next time I will fight really hard against any smart cleaner cooler meta meta stuff. Which is sad because I know what I'm talking about.
Stef _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
We used lazzy initialization because this is needed. When you have a lot of empty collection that are only used when they are used then it does not make sense to allocate them up front especially for FAMIX2Method objects.
Stef
Hm.
Not sure which way it was in VW. My tendency is to throw away lazy initialization unless someone can prove that it is needed.
I prefer to always see a comment explaining *why* lazy initialization is right.
Cheers,
- on
On Sep 4, 2008, at 14:27, Stéphane Ducasse wrote:
So can somebody smart explain to me the following
before in Squeak incomingInvocations was
incomingInvocations incomingInvocations isNil ifTrue: [ incomingInvocations := OrderedCollection new ].
in oscar changes it is
incomingInvocations <MSEProperty: #incomingInvocations type: #FAMIXInvocation opposite: #candidates> <mulivalued> <derived> ^ incomingInvocations values
So what should I do. Because now I do not know! But I'm certainly stupid for sure.
What I know is that this metastuff gets in our way. I do not care about reproducing complete code (which we cannot in FAME because lazy initialization and other useful code level idioms are not represented) and now instead of focusing on Moose I have to deal with meta representation concerns. Really I think that we got trapped there. Knowing where to stop is as important as doing it. Next time I will fight really hard against any smart cleaner cooler meta meta stuff. Which is sad because I know what I'm talking about.
Stef _______________________________________________ Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Moose-dev mailing list Moose-dev@iam.unibe.ch https://www.iam.unibe.ch/mailman/listinfo/moose-dev