[squeak-dev] The Trunk: EToys-topa.121.mcz
Tobias Pape
Das.Linux at gmx.de
Thu Apr 2 23:52:57 UTC 2015
On 03.04.2015, at 01:44, Chris Muller <asqueaker at gmail.com> wrote:
> 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..
Nope. The idea of a symbol is (IMHO, admittedly) broader than
just canonicalized Strings. If it where, I would call it InternedString
or CanonicalizedString. Symbols are unique human readable identifiers.
See Prolog, where the concept is called Atoms. There is no conceptual
differences. Yet, Prolog atoms do not remotely compare to interned strings.
>
>> 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"?
See #classOrTraitNamed: (which is called by #classNamed:)
classOrTraitNamed: aString
"aString is either a class or trait name or a class or trait name followed by ' class' or 'classTrait' respectively.
Answer the class or metaclass it names."
and
hasClassNamed: aString
"Answer whether there is a class of the given name, but don't intern aString if it's not alrady interned. 4/29/96 sw"
Best
-Tobias
More information about the Squeak-dev
mailing list
|