[Cuis-dev] DSL GUI framework

Juan Vuletich juan at jvuletich.org
Fri Sep 10 07:28:50 PDT 2021


On 9/9/2021 1:34 PM, Hilaire Fernandes via Cuis-dev wrote:
> Le 06/09/2021 à 22:47, Juan Vuletich a écrit :
>> I haven't had time to focus on this yet, but I agree that it would be 
>> great to start moving in this direction. I guess the model would be 
>> less powerful than "full morphic" and more focused on composing 
>> widgets, right?
>
> Yes that the idea. For spacial composition, a composer object could 
> apply default layout rules, while possibly adjustable.
>
> Hilaire
>

Took a look at Concur 
[https://potocpav.github.io/programming/2020/05/01/designing-a-gui-framework.html?utm_source=pocket_mylist] 
. I agree that a space composition dsl without extra complexity is 
something we want. I'm not crazy about their functional style time 
composition: they completely disregard view / model separation, etc. 
(see below)

WRT Glimmer [https://github.com/AndyObtiva/glimmer], it doesn't look too 
different from the "obvious" Smalltalk code o set up, for example, a 
multi column list.

Going back not to spatial composition, but to "time composition" and, 
more generally, to the general arquitecture of a GUI application, this 
is something I wrote many years ago, and that is not currently 
implemented for Cuis: 
http://jvuletich.org/Cuis/APatternForGUIProgramming.html . LightWidgets 
was a set of widgets I wrote for Cuis around that time. It wasn't 
maintained and later abandoned. But it shouldn't be too hard to build 
something like that again (or simply to rescue it from some old Cuis 
release).

I wrote this after many years of experience seeing how simple GUIs are 
easy to build, but the kind of spaghetti they turn into as models and 
views become more complex. Although the basic guidelines for simple guis 
and models seem obvious, the more seemingly arbitrary rules for model 
and view composition are my take on keeping complexity under control, 
and making it easy to guarantee model consistency, view consistency and 
model-view consistency (yes, those are three different things!). I 
haven't built GUI apps in some time, but if I ever do it again, I'd 
follow a style like this.

Cheers,

-- 
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
@JuanVuletich



More information about the Cuis-dev mailing list