<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hi Stephen!<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Le 21/04/2022 à 20:00, stephen--- via
      Cuis-dev a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:212DC432-7D11-4F45-829D-8F579C43A0CA@heaveneverywhere.com">
      <div class="">Yeah, I’m still tracking Cuis, and loving the lack
        of bloat.</div>
    </blockquote>
    <p>Indeed. Cuis is very agile to improve itself while remaining an
      understandable system for an human being. This is the reason I am
      porting DrGeo from Pharo to Cuis, I am close to the end of the
      effort.<br>
    </p>
    <blockquote type="cite"
      cite="mid:212DC432-7D11-4F45-829D-8F579C43A0CA@heaveneverywhere.com">
      <div class="">My issues with Morphic are that it’s not MVC and
        it’s not well-designed.</div>
    </blockquote>
    <p>Morphic on Cuis (aka Morphic 3)  is a redesign from the basement
      to the attic. It is a better design than the original Morphic 2
      system on Squeak. Two salient aspects: its coordinate system is
      relative to each morph, its classes are simpler. I did not even
      mentioned VectorGrpahic, okay I just did.<br>
    </p>
    <blockquote type="cite"
      cite="mid:212DC432-7D11-4F45-829D-8F579C43A0CA@heaveneverywhere.com">
      <div class="">First, views and controllers are merged, which hurts
        reusability of components and hinders the development of new
        interaction methods like multi-touch screens or voice input.</div>
    </blockquote>
    <p>Oh, but you can move out the controllers from the Morphic view.
      This is what I am doing. I am not an expert on MVC so please
      correct me if I miss some key point. In DrGeo the controls of the
      mathematic items are done outside of their respective Morphic
      view.</p>
    <p>Regarding the more traditional GUI part, we are using pluggable
      Morphs composed with the Cuis' Layout system. It is interestingly
      reusable. I am also interested in the new interaction methods you
      mentioned.<br>
    </p>
    <p>I don't see blocking point preventing you from using Morph with a
      MVC design.<br>
    </p>
    <blockquote type="cite"
      cite="mid:212DC432-7D11-4F45-829D-8F579C43A0CA@heaveneverywhere.com">
      <div class=""><br class="">
      </div>
      <div class="">Second, the base classes (Morph et al.) are pretty
        heavy-weight; Morph has 6 instance variables, and you’re up to
        10 or more by the </div>
    </blockquote>
    <p>Cuis is very agile and, if I understand correctly the policy of
      its community, is prone to deep refactoring if it improves Cuis
      simplicity and efficiency. And these are not empty words, a few
      weeks ago, Cuis Morph system has been through an important design
      in the classes hierarchy. The classes were not exactly shortened
      but split, joined, renamed for a better understanding
(<a class="moz-txt-link-freetext" href="https://lists.cuis.st/mailman/archives/cuis-dev/2021-December/004649.html">https://lists.cuis.st/mailman/archives/cuis-dev/2021-December/004649.html</a>).<br>
    </p>
    <p>Your need for smaller Morph, if you decided to jump in Cuis to
      port your software, will be also an opportunity for the Cuis
      community to improve the system in this particular area.</p>
    <p>Regarding your comment, there are 5 instance variables in Morph
      'owner submorphs properties id privateDisplayBounds'. Next, this
      is all you need for the view of your music notation system. You
      see, we had these discussion several months ago for DrGeo as I
      also want the simpler Morph as possible. In DrGeo the view of the
      mathematics models (point, segment, etc.) are almost direct
      subclasses of Morph:<br>
    </p>
    <p><img moz-do-not-send="false"
        src="cid:part1.NoBBVh4C.Au03jHQE@drgeo.eu" alt="" width="653"
        height="677"></p>
    <p><br>
    </p>
    <p>Now while observing the Morph class, there is a lot of stuff in
      there I don't need for the DrGeo math morph. It should be doable
      to have a KernelMorph with only the instance variables 'owner id
      privateDisplayBounds' and the reduced ad-hoc behaviors. That is
      something that may interest you too.<br>
    </p>
    <br>
    <blockquote type="cite"
      cite="mid:212DC432-7D11-4F45-829D-8F579C43A0CA@heaveneverywhere.com">
      <div class="">time you get to the interesting classes.  This makes
        it hell on the garbage collector for complex UIs (like music
        notation) where you might have thousands of display objects on
        the screen, and want to scroll or page quickly.</div>
    </blockquote>
    <p>As a matter of fact, you can observe this video until the end.
      There are 10'000 points (10'000 Morph drawings, each of two lines)
      and the canvas is zoomed/unzoomed, an object is dragged around.<br>
    </p>
    <p><a class="moz-txt-link-freetext" href="https://twitter.com/GNUDrGeo/status/1515365208428007426">https://twitter.com/GNUDrGeo/status/1515365208428007426</a><br>
    </p>
    <p>Your software and mine are sharing the same concept of canvas
      where you are composing music notation and I math objects.</p>
    <p>Nevertheless, porting to any system, will be a substantial
      effort. But I guess you know that.<br>
    </p>
    <p>If you decided to jump in and use Morph, I will be happy to help
      you, in tips and code.</p>
    <p>About Brick I don't know yet.<br>
    </p>
    <p>Hilaire<br>
    </p>
    <pre class="moz-signature" cols="72">-- 
GNU Dr. Geo
<a class="moz-txt-link-freetext" href="http://drgeo.eu">http://drgeo.eu</a>
<a class="moz-txt-link-freetext" href="http://blog.drgeo.eu">http://blog.drgeo.eu</a></pre>
  </body>
</html>