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