GUI libraries

Chris wendlec at tcd.ie
Thu Nov 28 06:49:31 PST 2013


On Thursday, 28 November 2013 at 13:30:53 UTC, Luís Marques wrote:
> On Thursday, 28 November 2013 at 12:13:42 UTC, Chris wrote:
>> What I meant was no bindings to native widgets or other 
>> toolkits. DWT (like SWT) uses the native widgets and needs an 
>> interface. I was thinking of a toolkit where everything is 
>> provided by D and done in D without any reference to native 
>> frameworks (Cocoa etc.).
>
> Whatever API / bindings you use, please don't expose non-native 
> UIs to users (drawn from scratch, either mimicking the native 
> UI or not). They never completely integrate with the OS, subtly 
> deviating from the native behaviour in ways that range from 
> awkward to infuriating, and are always playing catch-up to the 
> latest OS changes.
>
> For instance, take Viber for the Mac: what could be a great 
> application (most of the complexity of a VoIP app isn't even in 
> the UI), has awkward behaviors (e.g., the scrolling panes don't 
> implement rubber banding, which makes them feel extremely 
> unresponsive in OS X), badly imitated controls (e.g., the chat 
> text box context menu, in OS X at least), etc. Features which 
> are both complex and subtle like internationalisation also tend 
> to break.
>
> The situation was already bad when the Windows, Mac and Linux 
> interfaces were, overall, pretty similar (many of the 
> non-optimal design decisions in apps with non-native UIs tended 
> to appear where there were differences, such as in OS X global 
> menus vs Windows' per window menus). With the trend toward 
> newer and more diverse interface approaches, such as attempts 
> to try to bring traditional computers to touch screen hardware, 
> non-native UIs will tend to perform even worse, feeling even 
> more alien to the end users.

I don't know, but there are apps out there that do their own 
thing rather than relying on the system. I think Chrome and Opera 
are implemented like that. The thing is that people are getting 
used to different UIs now, because they use e.g. an iPad, an 
Android phone and a Windows PC (both privately and at work). So 
maybe everything is going in the direction of common UI features. 
Take for example multi-touch. Years ago Apple was way ahead 
(zooming in and out, rotating pictures etc.). Now most touch 
screen devices feature the same set of movements (e.g. scroll 
with middle and ring finger on track pad).

Also, when writing bindings to native widgets, you're always 
playing catch-up too. Once you've got your bindings, the native 
toolkit has new methods, features and classes. I still think it 
would be good to have an independent GUI toolkit, like Java Swing 
/ FX as opposed to SWT.


More information about the Digitalmars-d mailing list