[squeak-dev] The Trunk: EToys-topa.121.mcz

Chris Muller asqueaker at gmail.com
Thu Apr 2 23:44:59 UTC 2015


On Thu, Apr 2, 2015 at 6:32 PM, Tobias Pape <Das.Linux at gmx.de> wrote:
>
> On 03.04.2015, at 01:00, Chris Muller <asqueaker at gmail.com> wrote:
>
>> On Thu, Apr 2, 2015 at 5:52 PM, Tobias Pape <Das.Linux at gmx.de> wrote:
>>> Hi,
>>>
>>> On 03.04.2015, at 00:32, Levente Uzonyi <leves at elte.hu> wrote:
>>>
>>>> I prefer to use Symbols instead of Strings for class names, because they make it easier to find potential users of the class.
>>
>> +1
>>
>>> yes, but #hasClassNamed: is a String protocol.
>>
>> A Symbol is a String.  Many (if not all) existing users of
>> hasClassNamed: pass Symbols (a special kind of String).
>
> I don't want to rely on that.
> Symbols being Strings is an implementation detail.

Symbols logically ARE Strings, regardless of implementation.  They're
a series of characters just canonicalized.  Its only the
canonicalization that's implementation-specific, not equality or type
testing..

> Looking at the broader picture, in GemStone, in fact
> a Symbol is not a String.

Object name  "#Object"  <---- a Symbol.

So why do you say #hasClassNamed: a "String protocol" instead of a
"Symbol protocol"?


More information about the Squeak-dev mailing list