The State of the GUI

aberba karabutaworld at gmail.com
Wed Nov 21 08:25:03 UTC 2018


On Wednesday, 24 October 2018 at 22:09:24 UTC, dayllenger wrote:
> On Wednesday, 24 October 2018 at 06:20:05 UTC, Adam Wilson 
> wrote:
>> [...]
>
> By the way, I develop a fork of DlangUI for a while. It is 
> pretty raw and doesn't have some important features, has no 
> tutorials and tooling yet.
> https://github.com/dayllenger/atoll
>
> My ideas on its design:
> - use CSS for deep visual customization
> - there is no fixed set of CSS properties - widgets can define 
> their own
> - mimicry to native controls with several themes
> - create few powerful layouts, which will satisfy 99% of 
> demands - free (with manual positioning), stack (with inline 
> flow), grid layout (with fixed, percent and automatic sizes, 
> with cell alignments, with switchable row/column alignments, 
> etc.)
> - make a possibility to embed the library into existing 
> applications, like game engines or games themselves
>
This is exactly what DlangUI should have aimed to be like. Its 
still chasing after the old GUI path which is an already dying 
trend. DlangUI is a very impressive achievement and I'm very glad 
the developer is doing such massive work. However, the direction 
it's going in terms of layout and theming doesn't meet modern 
demands. I think CSS/subset of it, is perfect for customization. 
That's exactly the direction GTK+ is going after years of chasing 
the layout approach of Qt and other previous Windows toolkits.

> For now I am collecting information to decide what kind of 
> markup language to use, or do not use it at all. I don't really 
> understand necessity of HTML- or QML-like languages in this 
> situation. They facilitate app development, but wait - design 
> may be created in Designer tool, and logic is anyway done in 
> the D language.

I think layout languages haven't really taken off in most 
toolkits that have them...relative to the use of the APIs 
themselves. Its a niche thing IMO. A well designed (clean, 
consistent, simplistic) API should be enough for most needs.


Another thing worth considering is a reactive GUI approach. Most 
modern toolkits are aiming for reactivity. Its something that can 
be attached as an opt-in (See RX in D: 
https://code.dlang.org/packages/rx) or used as a fundamental 
architecture. It makes so much sense.

Overview by looking at drawback of current OOP approach: 
https://eugenkiss.com/b/overview-of-reactive-gui-programming

The concept using a demo approach (must read): 
https://gist.github.com/staltz/868e7e9bc2a7b8c1f754



More information about the Digitalmars-d mailing list