
On Mon, Sep 6, 2010 at 5:09 PM, Yakov Galka <ybungalobill@gmail.com> wrote:
Yes, I think that all of us understand your intent, so you don't have to repeat it again. The problem is that there are *already* many low-level libraries with "multi-platform interface" (wxWidgets, Qt, omgui, gtkmm, and more...). To do a better design you should analyze why their design is wrong, what problems you want to solve and come up with a design that solves these problems. Almost everything you said till now doesn't differ conceptually from existing libraries, except the iostream analogy which is good and reminds Notus ideas.
I've been for the quest of "how a good gui library should look" for about a year. However I could tell only counter-examples for a good library. I still don't have a grasp of the whole design. It's good that you opened this conversation here because: 1) As Daniel said two people is the perfect size of a team to agree on a design, however making a good design requires much more thought, IMO. 2) Some libraries that people mentioned here and I wasn't aware of, added to my understanding of the topic (again: notus, Adam&Eve).
My claim is that you should think of higher level stuff and the low-level will come later. Think of event passing and model/view binding. Think of what concept should be there to make it possible to the same logic to operate with a dialog with "native" look, "uniform" look or even drawn with OpenGL on a single canvas in some computer game menu. How to design these to make all the three co-exist in a single application?
I repeat that I am focusing on the low-level components because I do not want the discussion to get stuck on what appears to be a very difficult subject. Therefore I would like discussion of higher level parts to be limited to what would be required to implement them. For Boost and the Standard Library, a good GUI design would be usable in as many types of applications as possible; while a good design for the back end will support as many designs for a GUI as possible.