[Cuis-dev] MVC et al

Stephen Travis Pope stephen at heaveneverywhere.com
Tue Aug 8 13:06:29 PDT 2023


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
    
     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/32d3706f/attachment.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/32d3706f/attachment.tiff>


More information about the Cuis-dev mailing list