Traits status

Colin Putney cputney at wiresong.ca
Mon Oct 24 18:00:44 UTC 2005


Andreas Raab wrote:

> Have you guys ever considered that, instead of doing open heart surgery 
> on a conscious patient, e.g., reformulating core-classes while the 
> system is running, you might as well evolve it sideways?

[snip]

> All you need is a basic metaclass hierarchy, a 
> classbuilder that allows you to insert new metaclasses (nothing you want 
> to do casually, but in these cases it's really useful) a single 
> recompilation after loading, and voila! There is your parallel class 
> hierarchy functioning just as well as any other.

I second this idea. I did the same sort of thing when fooling around 
with different ways of representing code using packages. It's 
surprisingly easy, and a great way to experiment with stuff that would 
be really difficult to do to the core system without breaking it, at 
least temporarily.

Another idea that might make things easier is this: OB system browsers 
take an environment as their root node, so if you build your metaclass 
hierarchy into a new environment, you can just open a browser on it go. 
(The one exception being senders and implementors since SystemNavigator 
is hard-coded to use Smalltalk.)

I'd love to see a Traits implementation that I can load, play with and 
unload even if it's not quite ready for use in production.

Colin




More information about the Squeak-dev mailing list