On Sep 24, 2012, at 8:24 PM, Guillermo Polito wrote:
> What if we do it the other way? Add #variableNames to the instances :)
>
> Nautilus new variableNames = Nautilus instVarNames.
>
> And them
>
> Nautilus new variableNames
> ==> #('announcer' 'browsedEnvironment' 'browsingHistory' 'plugins' 'selectedCategory' 'selectedClass' 'selectedGroup' 'selectedMethod' 'selectedPackage' 'showCategories' 'showComment' 'showGroups' 'showHierarchy' 'showInstance' 'showPackages' 'ui' 'uiClass')
>
> Nautilus new instVarNamed: 'announcer'
>
> ?
>
> Of course, that will happen/work at metaclass level too.
>
> Maybe rename #instVarNames to #myInstancesVariableNames?
>
> Guille
>
> On Mon, Sep 24, 2012 at 8:18 PM, Camillo Bruni <
camillobruni@gmail.com> wrote:
> On 2012-09-24, at 20:15, St�phane Ducasse <
stephane.ducasse@inria.fr> wrote:
> > On Sep 24, 2012, at 6:51 PM, Camillo Bruni wrote:
> >>>> Nautilus class instVarNames
> >>> � � �-> �#('maxSize' 'cachedLastClasses' 'groups')
> >>>
> >>> ok we get the instance variables
> >>>
> >>> Nautilus class instVarNamed: 'groups'
> >>> -> error
> >>>
> >>> For me that is wrong. I should not get an error, I should get the actual
> >>> variable.
> >>> I mean, why #instVarNames workds but �#instVarNamed: doesn't? That is
> >>> inconsistent.
> >
> > to me mariano is right. if I can ask a class for a receiver a list of stuff I should be able to
> > send to the same receiver the value of the named elements.
> > this distinction is confusing (Normally I know what is metaclass programming)
>
> but with methods it's the very same, you get them no the class side, but you
> cannot do anything with them on the class.
>
> The problem is just that on a Class the instance side (of the Metaclass) and the
> class side collapse, so you have a double interface there.
>
> unless you have a strict and weird kind of separation of these two layers
> like in Java, you will always have a double set of methods there..
>