<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-04-03 1:52 GMT+02:00 Tobias Pape <span dir="ltr">&lt;<a href="mailto:Das.Linux@gmx.de" target="_blank">Das.Linux@gmx.de</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class=""><br>
On 03.04.2015, at 01:44, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
<br>
&gt; On Thu, Apr 2, 2015 at 6:32 PM, Tobias Pape &lt;<a href="mailto:Das.Linux@gmx.de">Das.Linux@gmx.de</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 03.04.2015, at 01:00, Chris Muller &lt;<a href="mailto:asqueaker@gmail.com">asqueaker@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;&gt; On Thu, Apr 2, 2015 at 5:52 PM, Tobias Pape &lt;<a href="mailto:Das.Linux@gmx.de">Das.Linux@gmx.de</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; On 03.04.2015, at 00:32, Levente Uzonyi &lt;<a href="mailto:leves@elte.hu">leves@elte.hu</a>&gt; wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt;&gt; I prefer to use Symbols instead of Strings for class names, because they make it easier to find potential users of the class.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; +1<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; yes, but #hasClassNamed: is a String protocol.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; A Symbol is a String.  Many (if not all) existing users of<br>
&gt;&gt;&gt; hasClassNamed: pass Symbols (a special kind of String).<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t want to rely on that.<br>
&gt;&gt; Symbols being Strings is an implementation detail.<br>
&gt;<br>
&gt; Symbols logically ARE Strings, regardless of implementation.  They&#39;re<br>
&gt; a series of characters just canonicalized.  Its only the<br>
&gt; canonicalization that&#39;s implementation-specific, not equality or type<br>
&gt; testing..<br>
<br>
</span>Nope. The idea of a symbol is (IMHO, admittedly) broader than<br>
just canonicalized Strings. If it where, I would call it InternedString<br>
or CanonicalizedString. Symbols are unique human readable identifiers.<br>
<br>
See Prolog, where the concept is called Atoms. There is no conceptual<br>
differences. Yet, Prolog atoms do not remotely compare to interned strings.<br>
<span class=""><br>
&gt;<br>
&gt;&gt; Looking at the broader picture, in GemStone, in fact<br>
&gt;&gt; a Symbol is not a String.<br>
&gt;<br>
&gt; Object name  &quot;#Object&quot;  &lt;---- a Symbol.<br>
&gt;<br>
&gt; So why do you say #hasClassNamed: a &quot;String protocol&quot; instead of a<br>
&gt; &quot;Symbol protocol&quot;?<br>
<br>
</span>See #classOrTraitNamed: (which is called by #classNamed:)<br>
<br>
classOrTraitNamed: aString<br>
        &quot;aString is either a class or trait name or a class or trait name followed by &#39; class&#39; or &#39;classTrait&#39; respectively.<br>
        Answer the class or metaclass it names.&quot;<br>
<br>
and<br>
<br>
hasClassNamed: aString<br>
        &quot;Answer whether there is a class of the given name, but don&#39;t intern aString if it&#39;s not alrady interned.  4/29/96 sw&quot;<br>
<br>
<br>
Best<br>
<span class=""><font color="#888888">        -Tobias<br>
<br>
<br></font></span></blockquote><div><br></div><div>To me, the idea to not intern &#39;BaseSoundSystem&#39; is moot.<br></div><div>We blatantly have a reference to #BaseSoundSystem that we try to hide. Why?<br><br></div><div>Nicolas<br> </div></div><br></div></div>