<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Stephen,<br>
<br>
On 5/1/2022 3:57 PM, stephen--- via Cuis-dev wrote:
<blockquote
cite="mid:EEB0F736-F125-4D32-8F04-6585749D3AC1@heaveneverywhere.com"
type="cite">
<meta http-equiv="Context-Type" content="text/html;
charset=us-ascii">
<div><br>
</div>
Hi folks,
<div><br>
</div>
<div>In the original MVC as described in the BlueBook,
the changed/update cycle that is the core of MVC (and any other
observer pattern implementation in Smalltalk) was the message
sequence:</div>
<div><br>
</div>
<div>Any object (a model) sends</div>
<div>
<div><span> </span>self changed </div>
<div><br>
</div>
<div>which calls, by default</div>
<div><span> </span>self changed: aToken</div>
<div><br>
</div>
<div>which calls, by default</div>
<div><span> </span>self changed: aToken with: anArgument</div>
<div><br>
</div>
<div>which calls, by default</div>
</div>
<div>
<div><span> </span>self changed: aToken with: anArgument from:
aSender</div>
<div><br>
</div>
<div>which was implemented as:</div>
</div>
<div><span> </span>self dependents do:</div>
<div><span> </span>[ :dep |</div>
<div><span> </span>dep update: aToken with: anArgument from:
aSender]</div>
<div><br>
</div>
<div>The dependents then implement update:with:from: or its
simpler variants.</div>
<div><br>
</div>
<div><br>
</div>
<div>In Squeak and descendants (I believe) this is rewritten using
triggerEvent: which is less flexible and not compatible.</div>
<div><br>
</div>
<div>Does anyone else notice this or have apps that use the old
Observer pattern code?</div>
<div><br>
</div>
<div>Stephen Pope</div>
<div><br>
<div> <span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>
<div>
<div>
<div><span><span><span><span><span><span><span><span><span><span><span><span><span><span>
<div> <br>
-- </div>
<div><br>
</div>
<div>
Stephen Travis
Pope Ojai,
California,
USA </div>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</div>
</div>
</span><span>
<div><span><span><span> </span></span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><img
moz-do-not-send="true"
src="cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net"></span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><a
moz-do-not-send="true" href="http://HeavenEverywhere.com">http://HeavenEverywhere.com</a><span>
</span><a
moz-do-not-send="true" href="http://FASTLabInc.com">http://FASTLabInc.com</a></span>
<div><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>
<span><a
moz-do-not-send="true" href="https://vimeo.com/user19434036/videos">https://vimeo.com/user19434036/videos</a>
</span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
<span><a
moz-do-not-send="true"
href="http://heaveneverywhere.com/Reflections">http://heaveneverywhere.com/Reflections</a></span>
</div>
<div><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>
<div><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span><span>
<div><span><br>
</span></div>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
</div>
</blockquote>
<br>
I believe that Smalltalk-80 only included #changed and #changed:
These were implemented in Squeak and derivartives like Cuis using
#triggerEvent:, giving compatibility with Smalltalk-80. Squeak even
includes (or used to include) a functional Smalltalk-80 style MVC.<br>
<br>
The other methods you describe (#changed:with: and
#changed:with:from:) are most likely only in ObjectWorks /
VisualWorks. Adding compatibility with them seems perfectly doable.<br>
<br>
Cheers,<br>
<pre class="moz-signature" cols="72">--
Juan Vuletich
<a class="moz-txt-link-abbreviated" href="http://www.cuis-smalltalk.org">www.cuis-smalltalk.org</a>
<a class="moz-txt-link-freetext" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a class="moz-txt-link-freetext" href="https://github.com/jvuletich">https://github.com/jvuletich</a>
<a class="moz-txt-link-freetext" href="https://www.linkedin.com/in/juan-vuletich-75611b3">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
<a class="moz-txt-link-freetext" href="https://independent.academia.edu/JuanVuletich">https://independent.academia.edu/JuanVuletich</a>
<a class="moz-txt-link-freetext" href="https://www.researchgate.net/profile/Juan-Vuletich">https://www.researchgate.net/profile/Juan-Vuletich</a>
<a class="moz-txt-link-freetext" href="https://patents.justia.com/inventor/juan-manuel-vuletich">https://patents.justia.com/inventor/juan-manuel-vuletich</a>
<a class="moz-txt-link-freetext" href="https://twitter.com/JuanVuletich">https://twitter.com/JuanVuletich</a></pre>
</body>
</html>