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.

Reply via email to