Work done at the Universitat Berne - Institut fur Informatik und angewandte Mathematik, and Andrew Black at OGI School of Science and Enginering, on a simpler, clearer way of providing mixin/multiple-inheritance benefits without their drawbacks.
Classes can use methods from traits as well as defining their own methods and instance variables. Traits thus enable a new style of programming, in which traits rather than classes are the primary unit of reuse.
However, the additional sub-structure provided by traits is always optional: a class written using traits can also be viewed as a flat collection of methods, with no change in its semantics. This paper describes the tool that supports these two alternate views of a class, called the traits browser, and the programming methodology that we are starting to develop around the use of traits.
There have been discussions on including Traits in 3.9. There have been no real arguments against inclusion of Traits, and many supporters. The intent is now to merge it in as soon as it is ready.
What is missing for Traits to be included?
Currently Traits can only be loaded into existing Squeak images through a problematic process that overrides various system methods, causing mysterious bugs. Since inclusion in the image these days means loading/merging as an MC package, there is some repackaging work to do. This is being worked on by SCG, Andrew Black and myself (Daniel Vainsencher), and we can't use help at the moment. However: