<div dir="auto"><div>Ken,<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 29, 2019, 9:36 AM  <<a href="mailto:ken.dickey@whidbey.com">ken.dickey@whidbey.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 2019-04-28 21:39, Phil B wrote:<br>
<br>
>> I tend to think of immutable, functional data structures.  So I don't<br>
>> expect 'foo darker' to return a mutable object.<br>
> <br>
> OK, now I understand where you're coming from.  I'd simply point out <br>
> that in the vast majority of cases, Smalltalk code has not been nor is <br>
> it currently immutable or functional 90+% of the time.<br>
<br>
Your code does not use numbers?  Or #symbols?  ;^)<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Bad examples for different reasons, IMO.[1]  I'd think a better comparison would be Point.  I think Point is both a better immutable implementation and (for the most part) uses better names as the names and their meanings are more broadly useful.</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
You want to use '0.3 asSin' rather than '0.3 sin'?  ;^)<br>
<br>
Natural languages have irregularities and dialects which we learn.  I <br>
find Interlingua easier to read than Esperanto, even though it is less <br>
regular.  Perhaps it is just me.<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">The last thing I want is for Smalltalk to adopt the ambiguity of languages used in human communication.  AppleScript was enough to convince me that this is not the way to go.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
I do change things with a long history.  But #darker I understand <br>
immediately.<br>
<br>
Scheme uses '!' to indicate mutators/setters. Would you propose <br>
#at:put!: or some such?<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Mainly I just want immutable objects to feel immutable.  (I.e. to not have setters that you need to 'just know' not to use after instance creation etc)</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
OK, I am being a bit difficult here, but pull us along.  Change costs <br>
something.  Perhaps some sample code would show the benefit and let me <br>
be embarrassingly wrong here.  Hey, it would not be the first time!<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">I have no problem with change.  If we want immutable classes, let's make them as truly immutable as possible within the limits of the VM.  If we want to make things functional, then let's do that.  But consistently and with purpose rather than in a partial, ad hoc fashion.</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
-KenD<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"></blockquote></div></div><div dir="auto">[1] a) I think math in general is a bad example because it's probably the most well understood DSL in existence.  It obviously predates computer languages and is baked into (every?) human language. I.e. it's rather unique.<br></div><div dir="auto"><br></div><div dir="auto">b) To me, the usage of symbols in the image is a tragic historical mistake in that the same symbol table is used in an ad hoc way for class names, selectors, enums and strings.  So when I see #x in the image, is it a meant as a selector, an enum or a unique string?  Unfortunately, the answer is 'yes' and to disambiguate you have to read the code.  Its another variant of semantic overloading I really don't care for.</div><div dir="auto"><br></div><div dir="auto">Thanks,</div><div dir="auto">Phil</div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
</blockquote></div></div></div>