<!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>