in reply to Open to debate on mixins and traits.

Providing this type of behaviour for your own classes can be done in 4 ways.

Shall we say that there are at least four ways :-)

Aspect Oriented Programming is an obvious fifth direction that some people are taking. Creating a new language that incorporated the cross-cutting concern (in AOP speak) as part of the core language would be a sixth. Sticking the common behaviour in a meta-class in those languages that support them would be a seventh.

Any more for any more?