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