Ideas for a brand new widget toolkit

Ramon spam at thanks.no
Mon Aug 19 14:01:48 PDT 2013


I suggest to first find out what we really want (and therefore 
who "we" is).

It seems to me that there are basically 3 groups:

- looking for some kind of GUI-kit that is less massive than gtk, 
qt, etc. and runs pretty everywhere.
   Need addressed: Well, sometimes a GUI is needed. A no frills 
basic thingy will do; most importantly it must run everywhere and 
more or less feel like the native GUI.
   One approach: D'ize Fox

- Looking for sophisticated GUI, possibly mainly for games, video 
etc.
   Need addressed: Graphics intense applications. Speed is 
important.

- Add a GUI toolkit to D
   Need addressed: D should have a GUI toolkit anyway. Why not 
create a major one and do it a) the D way and b) properly, 
possibly attracting more users to D?


Some remarks in no special order:

- Doing something HTML (ideally 5) based looks very attractive 
and cross plattform. It brings with it, however, either the need 
for a built in http server and the interface app/server - or - an 
HTML component which again needed  obe based on some GUI kit.

- Whatever we come up with should use native controls where 
existing and otherwise simulate them using other more basic 
native controls.
This sounds ugly, can, however, actually be a major chance and 
interesting approach.

- Simply creating yet another GTK or QT is unattractive - they 
already exist and so do bindings to D (if I'm not mistaken. 
Otherwise those bindings can be created)

- We should avoid some errors made by others and prepare for 
environmental changes (like X possibly being replace by wayland).

In summary I'd consider to create
- something new (rather than creating a, say, fox binding)
- that starts simple, already addressing many needs
- is designed in a way as to allow for some unobtrusive http 
binding (meaning: usually it runs by itself but it *can* - 
without breaking ones arm - also work through http)
- is based on a clearly defined set of basic widgets that are 
commonly available in all major targets (X, Windows, mac, 
possibly android, etc)
- is designed in a modular way so as to provide a) a basic GUI 
kit and b) - optionally - extensions or a "large" kit version. 
Reasoning: in 80% of cases a gui is needed simply as a gui 
interface for whatever programm. Sometimes, though, more is 
needed like e.g. a video widget.
This a) eases design and development and b) is attractive because 
pretty every existing solution is either smallish (often too 
small) or a monster (often way to big)
- could, in the long run, offer an HTML component so as to make 
HTML targets self hosting yet keep the http option open for new 
operating systems.

My first target would be something like "designing a new 'fox' 
fully using D's superior capabilities and doing that along the 
lines I listed above".

In other words: Let's scratch some itching that is a) common and 
b) not yet properly addressed by what is available.

regards - Ramon


More information about the Digitalmars-d mailing list