[squeak-dev] What are the current use cases for traits? (was: The Inbox: TraitsTests-pre.19.mcz)

David T. Lewis lewis at mail.msen.com
Sun Mar 31 21:06:25 UTC 2019

On Sun, Mar 31, 2019 at 09:20:47PM +0200, Levente Uzonyi wrote:
> On Sat, 30 Mar 2019, David T. Lewis wrote:
> >Changing the subject line to focus on Levente's question.
> >
> >On Thu, Mar 28, 2019 at 06:43:11PM +0100, Levente Uzonyi wrote:
> >>
> >>What are the current use cases for traits?
> >
> >In order to experiment with Git based repositories, I have loaded the
> >Tonel package from the github repositories of Jakob Reschke.
> >
> >	Installer ensureRecentMetacello.
> >	(Smalltalk classNamed: #Metacello) new
> >	   repository: 'github://j4yk/tonel:squeak';
> >	   baseline: 'Tonel';
> >	   load.
> >
> >This brings in the FS-AnsiStreams package, which uses traits.
> >
> >Having traits in Squeak allows me to load this package.
> I haven't tried your snippet and I don't know which version of FS depends 
> on Traits, but the one on SqueakSource definitely does not.
> Btw, Traits can be flattened, so it's possible to make it loadable into 
> images with no Trait support.

My use case came about because I was reading the "Squeak on Tonel" thread
last month:


Following advice in that thread, I loaded the package according to the
instructions here:


It worked :-)

I am not advocating for traits, just giving a use case for which the
support for traits in Squeak was helpful for me.


> So far all use cases of Traits in this thread (and its parent) were about 
> interfaces. Squeak doesn't have a concept for that, and Traits are 
> definitely more than just simple interfaces (as long as you don't want to 
> interface state). Perhaps we need interfaces instead of traits.
> Levente
> >
> >Dave

More information about the Squeak-dev mailing list