Ideas for a brand new widget toolkit

Tyler Jameson Little beatgammit at gmail.com
Tue Aug 13 22:46:49 PDT 2013


On Tuesday, 13 August 2013 at 13:23:07 UTC, Paul Z. Barsan wrote:
> Hello everyone,
>
> These days I've been searching for a cross-platform IDE for D 
> and I found out that there aren't any viable standalone 
> options. After a few clicks, I've ran over this topic: 
> http://forum.dlang.org/thread/astrlgbptrlvcdicqxux@forum.dlang.org 
> and it wasn't a surprise to see there are other people 
> searching for the very same thing.One of the reasons for the 
> absence of such IDEs is that there are no widget toolkits 
> written in D except DWT, but some people are complaining about 
> DWT for being a clone of SWT and that clients will want DWT to 
> be in sync with SWT since SWT is a "marketing paradigm". As 
> such, I want to embark on a long journey of writing a new 
> widget toolkit from scratch.

I already opened this can of worms: 
http://forum.dlang.org/thread/vtaufckbpdkpuxyztyoi@forum.dlang.org?page=1

There's some good feedback there. Not sure if you saw this one.

> Here are the ideas that people came up with so far(sorry if I 
> omitted something):
>
> snip...
>
> Think of this topic as writing letters to Santa, so: what say 
> you ?

I'm a web developer, and CSS+HTML works quite well. The DOM 
sucks, but the idea of separating markup, style and code has 
worked out pretty well. QML uses this model pretty well, and I 
think we can do something pretty nice with D's awesome template 
support and CTFE.

My general preferences:

- simple, orthogonal, efficient
- theme-able at runtime
- simple event model

Opinions:

- no XML
- few abstractions (i.e. avoid Java-esque OO obsession)

Features I'd really like:

- direct frame buffer support (like qingy on Linux, but not sucky)
- no GC (in an ideal world)
   - I'm not a big fan of Phobos relying on the GC
   - removes a barrier to writing bare-metal applications (only 
have to implement a new backend, not the whole ecosystem)
   - less expensive to link into a non-D project
- CTFE
- entire API accessable from C
   - so I can reuse it in another language (i.e. Rust, Go, Python, 
etc.)

Overall design:

- simple buffer layering strategy, with bottom up and top-down 
message passing

     http://swtch.com/~rsc/thread/cws.pdf

- scene graph (like clutter): 
http://en.wikipedia.org/wiki/Clutter_%28toolkit%29

I'd be interested in helping out, but I can't promise I'll be 
dependable enough to be a major maintainer, since I don't have 
any real projects that use D. Writing a UI toolkit is on my 
already long list of TODOs.


More information about the Digitalmars-d mailing list