Smalltalk at: #Foo - needs clarification

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

Smalltalk at: #Foo - needs clarification

Igor Stasenko
Hello,

just wanna ask, is this part of API will be deprecated in future?
(in Pharo, it put under 'to clean later' category).

And if yes, then what will be correct (dialect-agnostic) way to access globals?

Smalltalk globals at: #Foo ?

I thought that #at: #at:put:  (and some others)
historically is a part of Smalltalk protocol, and should stay there to
support legacy code and cross-dialect code.


What you thoughts about it?


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk at: #Foo - needs clarification

stephane ducasse-2


> Hello,
>
> just wanna ask, is this part of API will be deprecated in future?
> (in Pharo, it put under 'to clean later' category).
>
> And if yes, then what will be correct (dialect-agnostic) way to access globals?
>
> Smalltalk globals at: #Foo ?
>
> I thought that #at: #at:put:  (and some others)
> historically is a part of Smalltalk protocol, and should stay there to
> support legacy code and cross-dialect code.
>
>
> What you thoughts about it?

legacy you said! Let us move on. We keep to help people migrating.
Now we should avoid it as much as possible even Smalltalk globals at:. It should be more
        self class environment at:

In VisualWorks I'm not sure that Smalltalk at: make sense.
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk at: #Foo - needs clarification

Fernando olivero-2

On Oct 6, 2010, at 4:36 PM, stephane ducasse wrote:

>
>
>> Hello,
>>
>> just wanna ask, is this part of API will be deprecated in future?
>> (in Pharo, it put under 'to clean later' category).
>>
>> And if yes, then what will be correct (dialect-agnostic) way to access globals?
>>
>> Smalltalk globals at: #Foo ?
>>
>> I thought that #at: #at:put:  (and some others)
>> historically is a part of Smalltalk protocol, and should stay there to
>> support legacy code and cross-dialect code.
>>
>>
>> What you thoughts about it?
>
> legacy you said! Let us move on. We keep to help people migrating.
> Now we should avoid it as much as possible even Smalltalk globals at:. It should be more
> self class environment at:
>
> In VisualWorks I'm not sure that Smalltalk at: make sense.

I've been using:
       
         Smalltalk globals classNamed: aString.

IMO It's better from a conceptual view because  
        1. it breaks the  class-symbol binding,
        2. and a Dictionary-like implementation for lookup.


Fernando
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk at: #Foo - needs clarification

Andreas.Raab
In reply to this post by Igor Stasenko
On 10/6/2010 6:58 AM, Igor Stasenko wrote:

> Hello,
>
> just wanna ask, is this part of API will be deprecated in future?
> (in Pharo, it put under 'to clean later' category).
>
> And if yes, then what will be correct (dialect-agnostic) way to access globals?
>
> Smalltalk globals at: #Foo ?
>
> I thought that #at: #at:put:  (and some others)
> historically is a part of Smalltalk protocol, and should stay there to
> support legacy code and cross-dialect code.
>
>
> What you thoughts about it?

The base dictionary access methods (#at:, #at:put:, #at:ifAbsent:)
should remain in Smalltalk for compatibility. Then it's a matter of
where that request is being delegated.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk at: #Foo - needs clarification

Igor Stasenko
On 6 October 2010 19:08, Andreas Raab <[hidden email]> wrote:

> On 10/6/2010 6:58 AM, Igor Stasenko wrote:
>>
>> Hello,
>>
>> just wanna ask, is this part of API will be deprecated in future?
>> (in Pharo, it put under 'to clean later' category).
>>
>> And if yes, then what will be correct (dialect-agnostic) way to access
>> globals?
>>
>> Smalltalk globals at: #Foo ?
>>
>> I thought that #at: #at:put:  (and some others)
>> historically is a part of Smalltalk protocol, and should stay there to
>> support legacy code and cross-dialect code.
>>
>>
>> What you thoughts about it?
>
> The base dictionary access methods (#at:, #at:put:, #at:ifAbsent:) should
> remain in Smalltalk for compatibility. Then it's a matter of where that
> request is being delegated.
>

Yes, i am also thinking that for compatibility it should stay.


Then i think in modern code, a most future-proof way is

self class environment at: #Foo

since it completely avoids any kind of early-binding.


> Cheers,
>  - Andreas
>
>



--
Best regards,
Igor Stasenko AKA sig.