Boost logo

Boost :

From: Terje Slettebø (tslettebo_at_[hidden])
Date: 2003-08-03 05:21:39


>From: "Edward Diener" <eddielee_at_[hidden]>

> Terje Slettebø wrote:
> >> From: "Edward Diener" <eddielee_at_[hidden]>
> >
> >> Add to this the fact that nearly every C++ programmer already works
> >> with a framework library depending on his implementation of choice.
> >> On Windows alone I know of WTL, ATL, MFC, OWL, VCL, wxWindows, QT,
> >> and no doubt
> > others
> >> about which I have no knowledde, each tied very closely to a
> >> particular
> > C++
> >> compiler, IDE, and implementation.
> >
> > I just wanted to point out that several of these, Qt and wxWindows,
> > are cross-platform, so they are not tied to any specific compiler or
> > platform. wxWindows is also Open Source, and I've good experience
> > with the little I've used it. It's very easy to get up and running
> > with it (at least it was on Windows). snipped...
>
> I see you are supporting my main point which was that re-inventing a GUI
> framework for Boost, with both many platform dependent and cross-platform
> frameworks already in place and very popular with most C++ programmers,
will
> be duplicating functionality which already exists. I do realize that most
of
> these frameworks do not use template techniques but that doesn't make them
> necessarily any less popular with their many users. Also, as I pointed
out,
> the amount of work necessary to implement an effective GUI framework is
> enormous, given the differences in GUI controls and GDI-like functionality
> on the major OSs.

I complately agree. That was also an unspoken point of my posting - that
there's an enourmous amount of work to do this. Just wrapping/emulating
_one_ platform is a lot of work. I've been working on a Windows/Direct3D
wrapper, myself, which wraps the Win32 API, and especially due to the
low-level nature of this API, it's a lot of work to do so. Since I
discovered wxWindows, I've preferred to use that, instead, than duplicating
all the work that has gone into cross-platform GUI toolkits/frameworks like
wxWindows.

> I am certainly not against the OP trying to do something like this for
Boost
> but I think that is naive to assume that one can create such a Boost
> templated cross-platform framework without a tremendous amount of work and
> time spent invesigating the GUI and graphics APIs of a number of OSs. OTOH
> if the consensus is that such a framework will work only by having the end
> user plug-in to it classes with the appropriate functionality for a
generic
> idea, such as a listbox let's say, there will be enormous amount of work
for
> the end-user to do and even then the templated listbox may provide hooks
> into only a very small amount of functionality which listboxes represent
on
> that user's particular OS.
>
> As you have pointed out in the rest of your post, it may prove more
> worthwhile to work with the developers which already exist for a free
> cross-platform framework like wxWindows, in order to encourage them to use
> more modern C++ idioms which will make using their framework easier for
> end-users, than attempting to recreate one all over again. Boostifying
> wxWindows and having Boost developers and wxWindows talking to each other
> about better techniques for making wxWindows easier to program may be much
> more worthwhile than re-creating yet another GUI/Graphics framework.

That has also been my thought. As we've both pointed out, greating such a
library is a lot of work. There's a reason there's not yet a Boost.GUI.
There's a lot of developers at the wxWindows project, for example, showing
this. I just wanted to point out this point, too, to consider existing
libraries, as well. Boost has several times adopted libraries originating
elsewhere, and with an existing body of developers, as well, e.g.
Boost.Spirit.

The other mentioned cross-platform GUI similar in capability to wxWindows,
Qt, is not Open Source - there's an older Open Source non-commercial Windows
version, but not the more recent one, and not for commercial use. That makes
its license incompatible with Boost.

Regards,

Terje


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk