[Cuis-dev] MVC et al

rabbit rabbit at callistohouse.org
Tue Aug 8 14:09:58 PDT 2023


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!

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.

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…

ultiResult := ((42 eventual * 10)
then: [:res | res // 10])
waitTimeoutMSecs: 111.

I’m hopeful whomever dives into UI, this consideration be given. A good start would be the event handling interface, I’d think.

I’m grateful for your considerations.

••• rabbit ❤️‍🔥🐰

On Tue, Aug 8, 2023 at 16:06, Stephen Travis Pope via Cuis-dev <[cuis-dev at lists.cuis.st](mailto:On Tue, Aug 8, 2023 at 16:06, Stephen Travis Pope via Cuis-dev <<a href=)> wrote:

> Hello all,
>
> [Flame on]
>
> It’s very sad that there’s no MVC implementation for Squeak or Cuis.
>
> The “wrapper” implementation in VisualWorks is worth studying and copying.
> It’s been stable for over 30 years and has survived numerous attempts to replace it.
> It’s well-suited for back-ends other than BitBLT (e.g., structured graphics APIs).
> It supports scalable drag’n’drop GUI construction tools and easily extensible widgets and controls.
> 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.
>
> 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.
> Taligent, CommonPoint and Dolphin are all dead, VisualWorks is alive and well.
>
> The “wrapper” implementation in VisualWorks is worth studying and copying.
>
> [Flame off]
>
> Stephen Pope
>
> --------
>
> Stephen Travis Pope Ojai,California, USA
> [pastedGraphic.tiff]
> http://HeavenEverywhere.com
> http://FASTLabInc.com
> https://vimeo.com/user19434036/videos
> http://heaveneverywhere.com/Reflections
>
>> On Aug 4, 2023, at 12:18 PM, Hilaire Fernandes via Cuis-dev <cuis-dev at lists.cuis.st> wrote:
>>
>> Hi folks,
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> 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.
>>
>> [Dolpin Smalltalk article about MVP,](https://drive.google.com/file/d/1jWC7yLw8Q6sZeoq__m7K27vyOT8Dn55I/view?usp=sharing)
>>
>> [Article from the original designers of MVP](http://www.wildcrest.com/Potel/Portfolio/mvp.pdf)
>>
>> Wikipedia: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter
>>
>> Hilaire
>>
>> --
>> Cuis-dev mailing list
>> Cuis-dev at lists.cuis.st
>> https://lists.cuis.st/mailman/listinfo/cuis-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230808/f9d3f9b5/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedGraphic.tiff
Type: image/tiff
Size: 2442 bytes
Desc: not available
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230808/f9d3f9b5/attachment-0001.tiff>


More information about the Cuis-dev mailing list