<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>What would you say didn't work well with Wrapper?  What would you
      change/fix now? And would you keep the old dependency mechanism or
      use announcements?<br>
    </p>
    <div class="moz-cite-prefix">On 2023-02-28 15:36, Stephen Travis
      Pope wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:CB6EFE52-B84B-4513-886C-6668F51CDF9B@heaveneverywhere.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div><br>
      </div>
      Hello Squeakers,
      <div><br>
      </div>
      <div>My reasons for wishing Morphic gone are several:</div>
      <div><br>
      </div>
      <div>1: the mixing of view and controller, which hinders reuse and
        multiple viewing;</div>
      <div><br>
      </div>
      <div>2: the poor factoring so that the base Morph class has 6
        instance variables and many of the most-used Morph classes
        (e.g., PluggableListMorph, PluggableTextMorph) have 20 or more
        instance variables, leading to poor garbage collection
        performance for complex GUIs;</div>
      <div><br>
      </div>
      <div>3: the thread-unsafe nature of Morphic, and</div>
      <div><br>
      </div>
      <div>4: Morphic isn’t MVC and doesn’t use the dependency mechanism
        for updating, leading to poor scalability and multiple viewing.</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>Thank you, Marcel, for letting us know how you think we
        should proceed, but I was hoping that this forum was for
        discussing alternatives before a single individual starts coding
        a new system.</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>I’d like to propose a system like the VisualWorks “Wrapper”
        framework (which I admit to being co-author of [with David
        Leibs]), which has several advantageous features:</div>
      <div><br>
      </div>
      <div>1: GUIs are composed of nested very simple “wrapper” objects
        that handle clipping, translation, scaling, etc. but are not
        themselves display objects;</div>
      <div><br>
      </div>
      <div>2: Display methods support bitmaps, graphic contexts or
        external vector APIs as output media;</div>
      <div><br>
      </div>
      <div>3: Models are wrapped in ApplicationModel classes making them
        more pluggable and reusable via a set of AspectAdaptors and
        ValueHolders;</div>
      <div><br>
      </div>
      <div>4: It has a comprehensive collection of widgets;</div>
      <div><br>
      </div>
      <div>5: It has a drag’n’drop and forms-based GUI builder; and</div>
      <div><br>
      </div>
      <div>6: It’s been in use since the late-1980s with only minor
        changes.</div>
      <div><br>
      </div>
      <div>Here’s some doc:</div>
      <div><br>
      </div>
      <div>
        <div style="display: block;">
          <div style="-webkit-user-select: all; -webkit-user-drag:
            element; display: inline-block;" class="apple-rich-link"
            draggable="true" role="link"
            data-url="http://www.esug.org/data/Old/vw-tutorials/vw25/cb25.pdf"><a
              style="border-radius:10px;font-family:-apple-system,
              Helvetica, Arial,
sans-serif;display:block;-webkit-user-select:none;width:228px;user-select:none;-webkit-user-modify:read-only;user-modify:read-only;overflow:hidden;text-decoration:none;"
              class="lp-rich-link" rel="nofollow"
              href="http://www.esug.org/data/Old/vw-tutorials/vw25/cb25.pdf"
              dir="ltr" role="button" draggable="false" width="228"
              moz-do-not-send="true">
              <table
style="table-layout:fixed;border-collapse:collapse;width:228px;background-color:#E5E6E9;font-family:-apple-system,
                Helvetica, Arial, sans-serif;"
                class="lp-rich-link-emailBaseTable" width="228"
                cellspacing="0" cellpadding="0" border="0">
                <tbody>
                  <tr>
                    <td vertical-align="center" align="center"><img
                        style="width:228px;filter:brightness(0.97);height:294px;"
                        draggable="false"
                        class="lp-rich-link-mediaImage"
                        alt="preview.png"
                        src="cid:part1.7vti7S5O.JNLd6Ht8@yahoo.com"
                        width="228" height="294"></td>
                  </tr>
                  <tr>
                    <td vertical-align="center">
                      <table style="font-family:-apple-system,
                        Helvetica, Arial,
                        sans-serif;table-layout:fixed;background-color:rgba(229,
                        230, 233, 1);" class="lp-rich-link-captionBar"
                        width="228" cellspacing="0" cellpadding="0"
                        bgcolor="#E5E6E9">
                        <tbody>
                          <tr>
                            <td style="padding:8px 0px 8px 0px;"
                              class="lp-rich-link-captionBar-textStackItem">
                              <div style="max-width:100%;margin:0px 16px
                                0px 16px;overflow:hidden;"
                                class="lp-rich-link-captionBar-textStack">
                                <div
style="word-wrap:break-word;font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;text-align:left;"
class="lp-rich-link-captionBar-textStack-topCaption-leading"><a
                                    rel="nofollow"
                                    href="http://www.esug.org/data/Old/vw-tutorials/vw25/cb25.pdf"
                                    style="text-decoration: none"
                                    draggable="false"
                                    moz-do-not-send="true"><font
                                      style="color: rgba(0, 0, 0,
                                      0.847059);" color="#272727">cb25</font></a></div>
                                <div
style="word-wrap:break-word;font-weight:400;font-size:11px;overflow:hidden;text-overflow:ellipsis;text-align:left;"
class="lp-rich-link-captionBar-textStack-bottomCaption-leading"><a
                                    rel="nofollow"
                                    href="http://www.esug.org/data/Old/vw-tutorials/vw25/cb25.pdf"
                                    style="text-decoration: none"
                                    draggable="false"
                                    moz-do-not-send="true"><font
                                      style="color: rgba(0, 0, 0,
                                      0.498039);" color="#808080">PDF
                                      Document · 2.3 MB</font></a></div>
                              </div>
                            </td>
                          </tr>
                        </tbody>
                      </table>
                    </td>
                  </tr>
                </tbody>
              </table>
            </a></div>
        </div>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>stp</div>
      <div>
        <div>
          <meta charset="UTF-8">
          <br class="Apple-interchange-newline" style="font-family:
            "Times New Roman"; font-style: normal;
            font-variant-caps: normal; font-weight: 400; letter-spacing:
            normal; orphans: auto; text-align: start; text-indent: 0px;
            text-transform: none; white-space: normal; widows: auto;
            word-spacing: 0px; -webkit-text-size-adjust: auto;
            -webkit-text-stroke-width: 0px; text-decoration: none;
            font-size: 16px; caret-color: rgb(0, 0, 0); color: rgb(0, 0,
            0);">
          <span style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; caret-color: rgb(0, 0, 0);
            color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size:
            12px; float: none; display: inline !important;">--------</span><br
            style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; caret-color: rgb(0, 0, 0);
            color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size:
            12px;">
          <br style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; caret-color: rgb(0, 0, 0);
            color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size:
            12px;">
          <span style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; caret-color: rgb(0, 0, 0);
            color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size:
            12px; float: none; display: inline !important;">Stephen
            Travis Pope    Ojai,</span><span style="font-style: normal;
            font-variant-caps: normal; font-weight: 400; letter-spacing:
            normal; orphans: auto; text-align: start; text-indent: 0px;
            text-transform: none; white-space: normal; widows: auto;
            word-spacing: 0px; -webkit-text-size-adjust: auto;
            -webkit-text-stroke-width: 0px; text-decoration: none;
            caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family:
            HelveticaNeue; font-size: 12px; float: none; display: inline
            !important;"> </span><span style="font-style: normal;
            font-variant-caps: normal; font-weight: 400; letter-spacing:
            normal; orphans: auto; text-align: start; text-indent: 0px;
            text-transform: none; white-space: normal; widows: auto;
            word-spacing: 0px; -webkit-text-size-adjust: auto;
            -webkit-text-stroke-width: 0px; text-decoration: none;
            caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family:
            HelveticaNeue; font-size: 12px; float: none; display: inline
            !important;">California, USA</span><br style="font-style:
            normal; font-variant-caps: normal; font-weight: 400;
            letter-spacing: normal; orphans: auto; text-align: start;
            text-indent: 0px; text-transform: none; white-space: normal;
            widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
            auto; -webkit-text-stroke-width: 0px; text-decoration: none;
            caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family:
            HelveticaNeue; font-size: 12px;">
          <span style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-family: HelveticaNeue;
            font-size: 12px; caret-color: rgb(0, 0, 0); color: rgb(0, 0,
            0);">    </span><span style="font-style: normal;
            font-variant-caps: normal; font-weight: 400; letter-spacing:
            normal; orphans: auto; text-align: start; text-indent: 0px;
            text-transform: none; white-space: normal; widows: auto;
            word-spacing: 0px; -webkit-text-size-adjust: auto;
            -webkit-text-stroke-width: 0px; text-decoration: none;
            font-family: HelveticaNeue; font-size: 12px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);"></span><span
            style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; caret-color: rgb(0, 0, 0);
            color: rgb(0, 0, 0); font-family: HelveticaNeue; font-size:
            12px;"></span><span style="font-family: "Times New
            Roman"; font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-size: 16px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);"></span><span
            style="font-family: "Times New Roman"; font-style:
            normal; font-variant-caps: normal; font-weight: 400;
            letter-spacing: normal; orphans: auto; text-align: start;
            text-indent: 0px; text-transform: none; white-space: normal;
            widows: auto; word-spacing: 0px; -webkit-text-size-adjust:
            auto; -webkit-text-stroke-width: 0px; text-decoration: none;
            caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-size:
            16px;"></span><span style="caret-color: rgb(0, 0, 0); color:
            rgb(0, 0, 0); font-family: "Times New Roman";
            font-size: 18px; font-style: normal; font-variant-caps:
            normal; font-weight: 400; letter-spacing: normal; orphans:
            auto; text-align: start; text-indent: 0px; text-transform:
            none; white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none;"></span><span><img
              alt="pastedGraphic.tiff"
              src="cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net"
              moz-do-not-send="true"></span>
          <meta charset="UTF-8">
          <font style="font-style: normal; font-variant-caps: normal;
            font-weight: 400; letter-spacing: normal; orphans: auto;
            text-align: start; text-indent: 0px; text-transform: none;
            white-space: normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-size: 16px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);" face="HelveticaNeue"><span
              style="font-style: normal; font-size: 12px;"><br>
                   <a class="moz-txt-link-freetext" href="http://HeavenEverywhere.com">http://HeavenEverywhere.com</a></span></font>
          <div style="font-family: "Times New Roman";
            font-style: normal; font-variant-caps: normal; font-weight:
            400; letter-spacing: normal; orphans: auto; text-align:
            start; text-indent: 0px; text-transform: none; white-space:
            normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-size: 16px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);"><font
              style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
              font-size: 16px; font-style: normal; font-variant-caps:
              normal; font-weight: 400; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              face="HelveticaNeue"><span style="font-style: normal;
                font-size: 12px;">     <a class="moz-txt-link-freetext" href="http://FASTLabInc.com">http://FASTLabInc.com</a></span></font></div>
          <div style="font-family: "Times New Roman";
            font-style: normal; font-variant-caps: normal; font-weight:
            400; letter-spacing: normal; orphans: auto; text-align:
            start; text-indent: 0px; text-transform: none; white-space:
            normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-size: 16px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);"><font
              style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
              font-size: 16px; font-style: normal; font-variant-caps:
              normal; font-weight: 400; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              face="HelveticaNeue"><span style="font-style: normal;
                font-size: 12px;">   
                 <a class="moz-txt-link-freetext" href="https://vimeo.com/user19434036/videos">https://vimeo.com/user19434036/videos</a></span></font></div>
          <div style="font-family: "Times New Roman";
            font-style: normal; font-variant-caps: normal; font-weight:
            400; letter-spacing: normal; orphans: auto; text-align:
            start; text-indent: 0px; text-transform: none; white-space:
            normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-size: 16px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);"><font
              style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
              font-size: 16px; font-style: normal; font-variant-caps:
              normal; font-weight: 400; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              face="HelveticaNeue"><span style="font-style: normal;
                font-size: 12px;">     </span></font><span
              style="font-size: 12px; font-family: HelveticaNeue;"><a class="moz-txt-link-freetext" href="http://heaveneverywhere.com/Reflections">http://heaveneverywhere.com/Reflections</a></span></div>
          <div style="font-family: "Times New Roman";
            font-style: normal; font-variant-caps: normal; font-weight:
            400; letter-spacing: normal; orphans: auto; text-align:
            start; text-indent: 0px; text-transform: none; white-space:
            normal; widows: auto; word-spacing: 0px;
            -webkit-text-size-adjust: auto; -webkit-text-stroke-width:
            0px; text-decoration: none; font-size: 16px; caret-color:
            rgb(0, 0, 0); color: rgb(0, 0, 0);"><font
              style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);
              font-size: 16px; font-style: normal; font-variant-caps:
              normal; font-weight: 400; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;"
              face="HelveticaNeue"><span style="font-style: normal;
                font-size: 12px;"><br>
              </span></font><br style="caret-color: rgb(0, 0, 0); color:
              rgb(0, 0, 0); font-family: "Times New Roman";
              font-size: 16px; font-style: normal; font-variant-caps:
              normal; font-weight: 400; letter-spacing: normal;
              text-align: start; text-indent: 0px; text-transform: none;
              white-space: normal; word-spacing: 0px;
              -webkit-text-stroke-width: 0px; text-decoration: none;">
          </div>
        </div>
        <div><br>
          <blockquote type="cite">
            <div>On Feb 26, 2023, at 1:51 AM, Marcel Taeumel via
              Squeak-dev <a class="moz-txt-link-rfc2396E" href="mailto:squeak-dev@lists.squeakfoundation.org"><squeak-dev@lists.squeakfoundation.org></a>
              wrote:</div>
            <br class="Apple-interchange-newline">
            <div>
              <div id="__MailbirdStyleContent" style="font-size: 10pt;
                font-family: Arial; text-align: left;" dir="ltr"> Hi all
                --
                <div><br>
                </div>
                <div>Here is how one would start such an endeavor:</div>
                <div><br>
                </div>
                <div>1. Begin with implementing your new GUI framework
                  in a repository of your choice.</div>
                <div>2. Once it is usable and you have demonstrated that
                  with some content, tell people about it on the list to
                  find more contributors for your project.</div>
                <div>3. Once your GUI framework (and tools around it) is
                  mature enough, advocate for being able to tell users
                  in a fresh Squeak image about it and install it with a
                  simple button click. We have done this for Git
                  support, Refactoring tools, Squeak Inbox Talk, Auto
                  completion, ...</div>
                <div><br>
                </div>
                <div>After that --- projects rarely finish step 1 ---
                  you could decide to hand over the entire project to
                  Squeak by integrating it into the Trunk.
                  Alternatively, one could offer special Squeak bundles
                  that have our new GUI framework installed and ready to
                  use. Yet, Step 3 is usually worth pursuing first.</div>
                <div><br>
                </div>
                <div>Here is how NOT to do it:</div>
                <div><span style="font-size: 10pt">- Starting some
                    unfinished experiment and pushing it into Trunk,
                    hoping that other people will take care of it.</span><br>
                </div>
                <div>- Having a mature version of your GUI framework in
                  regular Trunk and still developing it in your personal
                  repository.<span style="font-size: 10pt"><br>
                  </span></div>
                <div><br>
                </div>
                <div>At the end of the day, personal time is often spent
                  more wisely in understanding and using and improving
                  what is already there. Feel free to start your own
                  libraries and applications, sure. But having the goal
                  of replacing something that is already working is
                  rarely a good idea. Definitely unwise for something as
                  complex as a GUI framework.</div>
                <div><br>
                </div>
                <div>Did you know that you can implement new widget
                  libraries on top of Morphic?</div>
                <div>- <a class="moz-txt-link-freetext" href="https://github.com/tom95/Pheno">https://github.com/tom95/Pheno</a></div>
                <div>- <a class="moz-txt-link-freetext" href="https://github.com/hpi-swa/widgets">https://github.com/hpi-swa/widgets</a></div>
                <div><br>
                </div>
                <div>That said, we should keep on cleaning up the system
                  to improve modularity (by untangling dependencies) to
                  be able to unload the things you do not need for your
                  personal projects such as EToys, MVC, MorphicExtras,
                  ... :-)</div>
                <div><br>
                </div>
                <div>***</div>
                <div><br>
                </div>
                <div>What about Tweak? I think that Tweak has really
                  good ideas in terms of event processing. Personally, I
                  don't think that it is better than Morphic, just
                  different. Yet, it would be nice to have a simple
                  working version of it in Trunk, like we have with MVC.
                  Squeak's project abstraction can handle that. Then
                  people can more easily learn about it and we can
                  preserve its ideas in executable form.</div>
                <div><br>
                </div>
                <div>Best,</div>
                <div>Marcel</div>
                <div>
                  <blockquote class="history_container" type="cite"
                    style="border-left-style:solid;border-width:1px;
                    margin-top:20px; margin-left:0px;padding-left:10px;">
                    <p style="color: #AAAAAA; margin-top: 10px;">Am
                      25.02.2023 01:23:16 schrieb Jecel Assumpcao Jr
                      <a class="moz-txt-link-rfc2396E" href="mailto:jecel@merlintec.com"><jecel@merlintec.com></a>:</p>
                    <div style="font-family:Arial,Helvetica,sans-serif">David
                      T. Lewis wrote on Fri, 24 Feb 2023 17:48:30 -0500<br>
                      > On Thu, Feb 23, 2023 at 11:47:12PM -0500,
                      Benoit St-Jean via Squeak-dev wrote:<br>
                      > > Nothing prevents us from replacing
                      Morphic or redesigning it!<br>
                      > > <br>
                      > > If Juan was able to do it for Cuis and
                      Sam Shuster was able to design <br>
                      > > Pollock for VW, what's stopping us from
                      even considering that option?<br>
                      > > <br>
                      > <br>
                      > There is absolutely nothing preventing
                      someone from developing a<br>
                      > replacement for Morphic in Squeak. In fact,
                      Squeak provides exactly<br>
                      > the tools needed to support this. The key
                      concept is that we can have<br>
                      > different kinds of Project that can be
                      defined and built up to support<br>
                      > entirely new and different user interface
                      models. Currently we think<br>
                      > mainly of Morphic and MVC, but there is no
                      reason at all that someone<br>
                      > could not build something new and different.<br>
                      <br>
                      An example of an alternative GUI was Andreas
                      Raab's "Tweak", which was<br>
                      used in the Croquet and Sophie projects.<br>
                      <br>
                      <a class="moz-txt-link-freetext" href="http://wiki.squeak.org/squeak/3867">http://wiki.squeak.org/squeak/3867</a><br>
<a class="moz-txt-link-freetext" href="https://en.wikipedia.org/wiki/Tweak_programming_environment">https://en.wikipedia.org/wiki/Tweak_programming_environment</a><br>
                      <br>
                      I am not sure why this didn't become an option in
                      the standard Squeak<br>
                      distribution.<br>
                      <br>
                      Another GUI for Squeak was PenSprites implemented
                      at Disney. It was a<br>
                      fraction of the size of Morphic meant for resource
                      constrained devices.<br>
                      That remained internal to Disney.<br>
                      <br>
                      About MVC and Morphic, you have to remember that
                      Squeak was created to<br>
                      implement EToys. EToys projects can have several
                      things active on the<br>
                      screen at the same time while MVC is about
                      switching focus between<br>
                      objects on the screen as the user interacts with
                      them. If you start a<br>
                      fish swimming in circles in one corner of the
                      screen you don't want it<br>
                      to freeze up if you start a new drawing in another
                      corner.<br>
                      <br>
                      -- Jecel<br>
                      <br>
                    </div>
                  </blockquote>
                </div>
              </div>
              <br>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">
</pre>
    </blockquote>
  </body>
</html>