<html><head></head><body> <div dir="auto">I think this is great! I’m all in on more cross-dialect interoperability. Thanks for pointing to VW. So fine. The Host Windows is an aspect I love!</div><div dir="auto"><br></div><div dir="auto">I would share my thoughts on UI. I think there needs to be a multitude of “concurrent” Processes. Of course only one Process is running on a particular instance of ProcessorScheduler. My solution, found in Squeak with Cryptography’s Crypto loaded is NearPromises. Instead of concurrent, think of their eventuality. Eventually, the computation will complete and notify me with the result. I can proceed with my subsequent sends queued until the Promise is resolved. Eventual send B May complete before Send A.</div><div dir="auto"><br></div><div dir="auto">In the UI a split would have to be done to determine where to add eventuality. I’m thinking Reactive Programming. I was thinking perhaps all three could be eventual among themselves with special cases going immediate internally like BitBlt. The semantic to pipelining next send to a promise…</div><div dir="auto"><br></div><div dir="auto"> ultiResult := ((42 eventual * 10)</div><div dir="auto"> then: [:res | res // 10])</div><div dir="auto"> waitTimeoutMSecs: 111.</div><div dir="auto"><br></div><div dir="auto">I’m hopeful whomever dives into UI, this consideration be given. A good start would be the event handling interface, I’d think.</div><div dir="auto"><br></div><div dir="auto">I’m grateful for your considerations.<caret></caret></div><div><br></div><div class="protonmail_signature_block" id="protonmail_signature_block"><div>••• rabbit ❤️🔥🐰</div></div> <div class="signature_br" contenteditable="false"><br></div><div class="signature_br" contenteditable="false"><br></div> <div id="protonmail_mobile_signature_block"><div></div></div> <div><br></div><div><br></div>On Tue, Aug 8, 2023 at 16:06, Stephen Travis Pope via Cuis-dev <<a class="" href="mailto:On Tue, Aug 8, 2023 at 16:06, Stephen Travis Pope via Cuis-dev <<a href=">cuis-dev@lists.cuis.st</a>> wrote:<blockquote type="cite" class="protonmail_quote"> <div><br></div>Hello all,<div><br></div><div>[Flame on]</div><div><br></div><div>It’s very sad that there’s no MVC implementation for Squeak or Cuis.</div><div><br></div><div>The “wrapper” implementation in VisualWorks is worth studying and copying.</div><div>It’s been stable for over 30 years and has survived numerous attempts to replace it. </div><div>It’s well-suited for back-ends other than BitBLT (e.g., structured graphics APIs).</div><div>It supports scalable drag’n’drop GUI construction tools and easily extensible widgets and controls.</div><div>Wrapper is a more fine-grained class library for MVC, and includes framework classes such as ApplicationModel, PluggableAdaptor and ValueHolder to do what MVP seeks to add.</div><div><br></div><div>MVP is not MVC and cannot be said to "fix MVC flaws”; the MVP papers (based on the Taligent C++ version) refer to a 1980 version of MVC with no mention of the later VisualWorks frameworks.</div><div>Taligent, CommonPoint and Dolphin are all dead, VisualWorks is alive and well.</div><div><br></div><div><div>The “wrapper” implementation in VisualWorks is worth studying and copying.</div></div><div><br></div><div><div>[Flame off]</div></div><div><br></div><div>Stephen Pope</div><div><div>
<br 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);" class="Apple-interchange-newline"><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 src="cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net" alt="pastedGraphic.tiff" src-original-pm-cid="proton-cid:55B397C7-3D20-4E60-A051-4564245235A7@sd.cox.net"></span><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> http://HeavenEverywhere.com</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;"> http://FASTLabInc.com</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;"> https://vimeo.com/user19434036/videos</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;">http://heaveneverywhere.com/Reflections</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 Aug 4, 2023, at 12:18 PM, Hilaire Fernandes via Cuis-dev <cuis-dev@lists.cuis.st> wrote:</div><div>
<div><p>Hi folks, <br>
</p><p>Cuis does not come with the legacy MVC framework. From what I
read even the Smalltalk coming with MVC offers a revisited
version, ok may be not the Squeak one. Nevertheless it does not
really matter if you want to develop a GUI application with Cuis
because all you need is to use the observer pattern and view
enriched with control, both present in Cuis.<br>
</p><p>Indeed, this pattern has seen since then alternate design. For
DrGeo, I pick up a different pattern, MVP, back in 2005. According
to its promoters, MVP fixes MVC flaws, you can read further about
that on related articles below.</p><p>In a few word, with MVP, the model informs its views using the
observer pattern, so the model does not know about its view, as in
MVC. The views also handle the low level controls, then informs
the Presenter to take action at the model level. This part is
different than MVC and offer more flexibility.<br>
</p><p>In DrGeo there are a lot of different Models: domain of the
application, the math items, the smalltlak sketch, the script, the
macro, etc. Most of them with dedicated Views of different nature
to display, design, etc the models. Then a bunch of Presenters,
with different level of complexity : domain application presenter,
tools to manage the user interaction on the canvas and builder to
manage the process of constructing a math item.</p><p>All in all, I don't see any reason Cuis can not be used to design
a complex GUI application. I have reworked the DrGeo code and
class categories to make it easier to understand the different
levels of responsibility in the application. In repo but not
released in app yet though.</p><p><a href="https://drive.google.com/file/d/1jWC7yLw8Q6sZeoq__m7K27vyOT8Dn55I/view?usp=sharing">Dolpin
Smalltalk article about MVP, </a><br>
</p><p><a href="http://www.wildcrest.com/Potel/Portfolio/mvp.pdf">Article
from the original designers of MVP</a></p><p>Wikipedia:
<a href="https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter" class="moz-txt-link-freetext">https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter</a></p><p>Hilaire<br>
</p><p><br>
</p>
</div>
-- <br>Cuis-dev mailing list<br>Cuis-dev@lists.cuis.st<br>https://lists.cuis.st/mailman/listinfo/cuis-dev<br></div></blockquote></div><br></div></blockquote></body></html>