Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-09-29 04:46:01


David Wehite wrote:

> In his article "The Design of C++0x", published in C/C++ Users Journal,
> May 2005, the author of C++ Bjarne Stroustrup wrote, "The most commonly
> requested new feature for C++ is a standard GUI".
>
> I am new to Boost and will appreciate if some folks here would give me a
> summary of Boost organization's standing on such a standard GUI library.
> If and how was it addressed and pointers to work on the subject if such
> has been
> done.

This topic has occurred regularly and this time I think I can't help
expressing my view. They are going to be somewhat rush, but don't take it
too personally.

I think that Boost as organisation can't and shouldn't produce a working GUI
library.

1. Effort
Let's take a look at existing library -- Qt. 10 years of development, done
by a company with 100 employers. Compare that to Boost. Yes, it started by
2 people, but still took 10 years.

Say we want to "just" wrap Qt.
Take each class, strip "Q" prefix from the name, add "boost::", create Qt
object in constructor, and make each method forward to Qt object. This can
be automated, in fact.

Now assume one has to think for 5 mins about each wrapped method -- does it
use ideal name, ideal order of parameters, and so on. The task no longer
can be automated and will take month(s).

Now assume one wants to actually design new interface, even if it will call
to Qt objects. The task will likely to take years.

This is only workable if the initial design becomes so attractive that 1000
people will start contributing.

To give another example, there's vector graphics library Cairo, that does
antialised 2D on many platforms. I don't have hard numbers but it's being
in development for quite some time, and just recently hit 1.0. And that's
just vector graphics library.

2. Design

It's not all clear that anybody here can design the right interface right
away. All design suggestions that floated around were centered at clever
use of C++ features, like nice DSL for describing windows. Sure, that will
look cool, but is really not important. FWIW, most of my problems with Qt
were causes by some non-standard use-cases, like, "make this lineedit wide
enough for exactly 8 characters".

Any fresh design will surely have troubles with much larger number of corner
use cases.

3. Purpose

Long time ago, there was project to reimplement all Qt from scratch, under
pure GPL license. That project did not produce anything viable, to the best
of my knowledge.

Now, Qt is GPL on Linux and Windows, so what's the purpose of any new
library? The possibility for commercial companies to have free-for-any-use
GUI library?

Failing that, anybody has any killer idea for GUI development that warrants
new library? Why don't add Qt to the C++ standard?

- Volodya

 


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