Yes, at the moment, we're using Traits lazily to avoid duplication and inappropriate inheritance. We are not actively refactoring other parts of the system at the moment. Doing so would probably make the merge into mainstream Squeak more difficult.
Glad this discussion came up. Just to be clear, I'm all for having the Traits kernel in 3.9!
But, at first I would suggest, and I think you want to do this anyways, that traits are not actually used. Not because they don't work or anything, but because of design considerations. So my gut feeling is that we should not use it for major refactoring of the system core in the near future.
I understand your point.
OOP has taken many years to come up with something like patterns and my guess is that, although not quite that long, it will take some time for best practices to emerge for traits.
Exact, so we will certainly have trial and errors and feedback.
Please don't get me wrong, I'm not trying to be negative here, just cautious and wouldn't mind if you prove me wrong ;-)
Somewhat related: how do traits affect packages? Should/can they be in separate packages?
Normally you can package traits and they can be in separate package and any class. Now if we have a class in PA using a trait in PB then we should get PA dependent on PB but besides that nothing special.
Michael
squeak-dev@lists.squeakfoundation.org