Musings about modularity and programming in the large
andreas.raab at gmx.de
Thu Jan 24 20:21:53 UTC 2008
>> I'll have to admit I never liked this model too much. One of the killer
>> features of the Smalltalk-80 model is that it allows you to add features
>> to the meta class easily (by just clicking on the meta-tab in the browser)
>> be that class instance variables, instances creation, utility, example, or
>> test methods.
> I agree that is extremely convenient. But could it be thought of as good
> tool / browser design? Even on Cointe's model, could a tool that knows it is
> editing a class make it just as painless to
> 1. select a metaclass
> 2. create a metaclass on the fly
> 3. do 1 & 2 with on-the-fly customizations to ((meta)class)instVars,
Not unless you really recreate the full ST-80 model. There is a ton of
subtleties in the design which is hard to recreate properly. For
example, a while back I wrote a self-contained metaclass kernel (if you
search the archives you may find it) but as soon as you introduce new
Metaclasses in the structure you are breaking the inheritance of the
metaclass hierarchy. And while this may be acceptable in a few
well-defined situations (like for bootstrapping a complete
self-contained kernel) it's certainly nothing that one would like to
deal with in daily work.
> (Ruby's instance-level customizations do things similar to 1 & 2; our
> instances would be classes).
> I can imagine (newbie alert :-), a similar "class" tab with similar
> convenient behaviors. Plus the added benefit, specially for those interested
> in meta-modeling and DSLs, of all full access to any levels of "metaclass"
More information about the Squeak-dev