Since I just started to work with Moose, here are my few comments.
Instead of
E1 >> attr ^ attr E1 >> attr: anObject ^ attr := anObject
I understand the two methods above.
you as base programmer will write
E1 >> attr ^self wideVarAt: #attr ifAbsentr: [ nil ] E1 >> attr: anObject self wideVarAt: #attr put: anObject
I do not understand them. I guess that wide classes is somehow related to collective behavior?
The same for the collective state, instead of
E2 >> parent ^parent E2 >> parent: anObject parent := anObject
Those two methods are easy to understand.
you as base programmer will write
E2 >> parent ^self groupVarAt: #parent ifAbsentr: [ nil ] E2 >> parent: anObject ^self groupVarAt: #parent put: anObject
I do not understand them.
I am now diving into moose. Adding more comments on classes and methods will probably help more newcomers than adding wide classes/ collective behavior. I am maybe wrong, but this is the problem I am now facing.
my 2 pesos
Cheers Alexandre