Boost logo

Boost :

From: Edward Diener (eddielee_at_[hidden])
Date: 2003-08-02 14:30:11


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 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.

As someone who has worked with numerous GUI frameworks on the Windows
platform, I know that the sophistication of such an interrelated set of
classes is enormous even just for the Windows API, let alone cross-platform
work, and the effort to create such a framework has almost certainly taken
the talents of teams of programmers from such big companies as Microsoft and
Borland. That is not to say that the talents of many programmers who have
contributed to a free framework should be denigrated in the least, only that
one should not in any way underestimate the time and effort involved, and
the continuing work it takes to chart changes and additions in OS APIs.

In my career I have seen and worked with a few cross-platform frameworks
from the past, and many have come and gone to be replaced by others. I am
sure people must remember Zinc and Zapp and XVT and I am sure there were
many, many others whose names I have forgotten by now. I believe the
difficulty of just maintaining cross-platform workability effectively may
have sunk most of these commercial efforts, but the general effort and
support involved was probably enormous. Of course most all of these
frameworks were also going against established GUI frameworks from
Microsoft, Borland , and other major corporations. If one just charts the
questions on the Borland and Microsoft and Sun NGs and forums regarding VCL
and MFC and .NET GUI and Swing and AWT every day, one sees the difficulty
even for huge corporations in maintaining an effective framework API. If
Boost can create such a templated API which works for a decent number of C++
programmers, without even considering the numbers of C++ programmers who
might leave their very comfortable RAD environments for a Boost GUI API, I
say bravo. But do not underestimate the difficulties involved and do
consider working to improve free frameworks which may already exist like
wxWindows instead.


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