Reuse in object-oriented languages typically focuses on inheritance. Numerous techniques have been developed to provide finer-grained reuse of methods, such as flavors, mixins and traits. These techniques, however, only deal with reuse at the level of classes. Class-based reuse is inherently static. Increasing use of reflection and meta-programming techniques in real world applications underline the need for more dynamic approaches. We propose a new approach that deals with reuse at the object level and that supports behavioral composition. We introduce a new abstraction called a talent which models features that are shared between objects of different class hierarchies. Talents provide a composition mechanism that is as flexible as that of traits but which is dynamic.


Getting Started

To get started you can either use a ready-made one-click image (suggested), or try to load the code yourself.

One-Click Image

  1. Download the Talents distribution.
  2. Launch the executable of your platform:
    • Mac: talents-OneClick.app
    • Linux: talents-OneClick.app/talents-OneClick.sh
    • Windows: talents-OneClick.app/talents-OneClick.exe


Gofer new 
	squeaksource: 'talents';
	package: 'ConfigurationOfTalents';
(Smalltalk at: #ConfigurationOfTalents)
	perform: #loadDefault.


  1. Manuel Leuenberger. Talented Streams — Objects composed from Features. Bachelor's thesis, University of Bern, February 2013. PDF 
  2. Manuel Leuenberger. Talented Streams Implementation. Bachelor's thesis, supplementary documentation, University of Bern, February 2013. PDF 
  3. Jorge Ressia, Tudor Gîrba, Oscar Nierstrasz, Fabrizio Perin, and Lukas Renggli. Talents: Dynamically Composable Units of Reuse. In Proceedings of International Workshop on Smalltalk Technologies (IWST 2011), p. 109—118, 2011. DOI PDF 
  4. Jorge Ressia. Object-Centric Reflection. PhD thesis, University of Bern, October 2012. PDF 
  5. Jorge Ressia, Tudor Gîrba, Oscar Nierstrasz, Fabrizio Perin, and Lukas Renggli. Talents: an environment for dynamically composing units of reuse. In Software: Practice and Experience, 2012. DOI PDF 

Last changed by admin on 21 April 2009