Every classes has required selectors

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Every classes has required selectors

Damien Cassou-3
Hi,

every classes in the system (3.9) have required selectors which means
every classes are abstract! This is not cool.

My dynamic protocol display them but I don't like that and I think I
will hide them.

Here are the required selectors for Object and Class:

Object requiredSelectors
     an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
#adaptToNumber:andSend: #contents: #step #readFrom:)

Class requiredSelectors
     an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
#adaptToNumber:andSend: #contents: #step #sendCaches: #soleInstance
#readFrom:)


Bye

--
Damien Cassou


Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

Philippe Marschall
2006/9/22, Damien Cassou <[hidden email]>:

> Hi,
>
> every classes in the system (3.9) have required selectors which means
> every classes are abstract! This is not cool.
>
> My dynamic protocol display them but I don't like that and I think I
> will hide them.
>
> Here are the required selectors for Object and Class:
>
> Object requiredSelectors
>      an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
> #adaptToNumber:andSend: #contents: #step #readFrom:)
>
> Class requiredSelectors
>      an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
> #adaptToNumber:andSend: #contents: #step #sendCaches: #soleInstance
> #readFrom:)

Bah. Imagine every class in Java was abstract. I can already see then
endless amount of flames and disses. It would always the mentioned as
one of the (other endlsess) bad points of Java. Every class in Squeak
is abstract? Well, that's just the way it is .....

Probably soon some post will that this is not problem at all.

Philippe

Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

Daniel Vainsencher-3
In reply to this post by Damien Cassou-3
Please don't hide it - allow these design bugs to be fixed.

Daniel

Damien Cassou wrote:

> Hi,
>
> every classes in the system (3.9) have required selectors which means
> every classes are abstract! This is not cool.
>
> My dynamic protocol display them but I don't like that and I think I
> will hide them.
>
> Here are the required selectors for Object and Class:
>
> Object requiredSelectors
>     an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
> #adaptToNumber:andSend: #contents: #step #readFrom:)
>
> Class requiredSelectors
>     an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
> #adaptToNumber:andSend: #contents: #step #sendCaches: #soleInstance
> #readFrom:)
>
>
> Bye
>


Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

Randal L. Schwartz
>>>>> "Daniel" == Daniel Vainsencher <[hidden email]> writes:

Daniel> Please don't hide it - allow these design bugs to be fixed.

I'm unclear about why you and the additional poster think these are "design
bugs".

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

stephane ducasse-2
In reply to this post by Philippe Marschall
Philippe do not be that cynical. I know you :)

We can fix that this should not be a problem.
But for now in 3.10
stef

>> Here are the required selectors for Object and Class:
>>
>> Object requiredSelectors
>>      an IdentitySet(#copyUniClassWith:  
>> #slotInfoButtonHitFor:inViewer:
>> #adaptToNumber:andSend: #contents: #step #readFrom:)
>>
>> Class requiredSelectors
>>      an IdentitySet(#copyUniClassWith:  
>> #slotInfoButtonHitFor:inViewer:
>> #adaptToNumber:andSend: #contents: #step #sendCaches: #soleInstance
>> #readFrom:)
>
> Bah. Imagine every class in Java was abstract. I can already see then
> endless amount of flames and disses. It would always the mentioned as
> one of the (other endlsess) bad points of Java. Every class in Squeak
> is abstract? Well, that's just the way it is .....
>
> Probably soon some post will that this is not problem at all.
>
> Philippe
>


Reply | Threaded
Open this post in threaded view
|

[OT]Re: Every classes has required selectors

Mathieu SUEN
In reply to this post by Damien Cassou-3
Damien Cassou a écrit :

> Hi,
>
> every classes in the system (3.9) have required selectors which means
> every classes are abstract! This is not cool.
>
> My dynamic protocol display them but I don't like that and I think I
> will hide them.
>
> Here are the required selectors for Object and Class:
>
> Object requiredSelectors
>     an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
> #adaptToNumber:andSend: #contents: #step #readFrom:)
>
> Class requiredSelectors
>     an IdentitySet(#copyUniClassWith: #slotInfoButtonHitFor:inViewer:
> #adaptToNumber:andSend: #contents: #step #sendCaches: #soleInstance
> #readFrom:)
>
>
> Bye
>

Strange why a so specific set (IdentitySet) is used? Symbole are always compare with identity.
Is there any particular reason of this?

Thanks
        Math

Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

Damien Cassou-3
In reply to this post by Randal L. Schwartz
Randal L. Schwartz a écrit :
>>>>>> "Daniel" == Daniel Vainsencher <[hidden email]> writes:
>
> Daniel> Please don't hide it - allow these design bugs to be fixed.
>
> I'm unclear about why you and the additional poster think these are "design
> bugs".

Because the selectors listed are sent but not implemented. This means
that some method are implemented in Object but you can never call them
because they refer to unimplemented methods.

--
Damien Cassou


Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

Damien Cassou-3
In reply to this post by Daniel Vainsencher-3
Daniel Vainsencher a écrit :
> Please don't hide it - allow these design bugs to be fixed.

I don't agree with you. Only a very few people will be interested in
those methods (one or two persons will be responsible for fixing this
bug). But it will annoy all users of DynamicProtocols. In the big
majority, people only want to see the required protocol displayed if
they effectively need to implement something in their class. This is not
the case for the previous methods.

If you are interested in seeing them, you can still modify the method
DPRequired class>>hiddenRequiredSelectors.

Bye

--
Damien Cassou


Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

stephane ducasse-2
Damien

please do not hide them.
We should fix that.
Hidding them is like putting dust under the carpet.
Let us clean the house!

Stef

On 22 sept. 06, at 18:45, Damien Cassou wrote:

> Daniel Vainsencher a écrit :
>> Please don't hide it - allow these design bugs to be fixed.
>
> I don't agree with you. Only a very few people will be interested  
> in those methods (one or two persons will be responsible for fixing  
> this bug). But it will annoy all users of DynamicProtocols. In the  
> big majority, people only want to see the required protocol  
> displayed if they effectively need to implement something in their  
> class. This is not the case for the previous methods.
>
> If you are interested in seeing them, you can still modify the  
> method DPRequired class>>hiddenRequiredSelectors.
>
> Bye
>
> --
> Damien Cassou
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Every classes has required selectors

Daniel Vainsencher-3
In reply to this post by Randal L. Schwartz
A user (reader) of Object is being exposed to a complexity of Morphic
(step) eToys (slotInfoButtonHitFor:inViewer:) and numbers (adapt...). If
these were class extensions allowing some functionality to be accessed
(String>>asUrl), then maybe it would be worth it. But the only reason
these methods are there, AFAICT, are that this code was written before
Traits were available, so the only way to allow any class to step
without imlementing the framework in it, or using up its one inheritance
slot was to put the framework into Object.

Such frameworks can now be placed each in a Trait, and composed in by
those classes that choose to implement the required method.

Making all classes seem abstract because of this misplacement is the
wrong solution, and hiding this workaround using another workaround in
the tools is also the wrong solution.

Daniel

Randal L. Schwartz wrote:
>> "Daniel" == Daniel Vainsencher <[hidden email]> writes:
>>    
>
> Daniel> Please don't hide it - allow these design bugs to be fixed.
>
> I'm unclear about why you and the additional poster think these are "design
> bugs".
>
>