Subject: Re: [boost] Thoughts for a GUI (Primitives) Library
From: Stefan Seefeld (seefeld_at_[hidden])
Date: 2010-09-08 09:14:25
On 09/08/2010 08:53 AM, Mathias Gaunard wrote:
> The current trend for GUIs is for them to be declarative, data-driven,
> and as automatic as possible.
> Basically, what would be nice, is specifying what data you have, what
> data you want, and not have to deal with any other detail.
> The system should then automatically select the most suitable widget,
> with the suitable disposition and sizes, and resize everything
> automatically on window resize etc.
You are raising a very important point here:
As this entire discussion proves, the term "GUI library" is highly
ambiguous. While some understand it to mean a library that implements a
GUI *engine* (with a wide range of often conflicting requirements),
others understand it as an API that is useful to *programatically
interface* with a GUI toolkit.
What application developers care most about is a powerful and convenient
API that lets them bind their application logic to a graphical frontend.
As such, I think this interface should be minimal, and focus on
semantics, rather than style (for example by following the
Model-View-Controller paradigm). (Styling from within the library should
only be done as much as is required to convey the semantics. Everything
else could be done completely outside this API, to give application
users control over the styling, not programmers.)
In contrast, some people seem to suggest that the internals of the
(to-be-rewritten) GUI engine itself need to be implemented using boost
All this strongly reminds me of the various discussions about a
boost.xml library we had in the past: I argued that the API is the most
important part of it (leaving room for third-party implementations to be
plugged in), while others argued that the XML parser needs to be written
using spirit, etc.
The views didn't necessarily contradict each other, but demonstrate how
different the focus was / is.
-- ...ich hab' noch einen Koffer in Berlin...