Boost logo

Boost :

From: Matt S Trentini (matt_trentini_at_[hidden])
Date: 2004-09-19 19:21:20

David Bergman wrote:

> No, the *actual* complexity. Most "GUI" programmers happen to be quite
> junior, and templates are tricky. Types not consisting of one simple lexeme
> are complex. [And typedef's do not save that...]

Whoa, slow down there. :) Maybe GUI programmers that _you_ work with
are junior and find templates difficult but that's certainly not the
case where I work. I do a great deal of GUI coding and can certainly
say that I'm comfortable using (and encouraging others to use) templates
and generic coding techniques.

> Regular programmers cannot use templates more than via very simple patterns,
> such as smart pointers (actullay popularized via Microsoft's Active Template
> Library, I think), and they can certainly not create their own templates. I
> have interviewed about a hundred "expert C++ programmer" (from the
> resume...) of which three (3) had ever created his/her/its own template, and
> zero (0) had ever used either templates as template parameters or nested
> template instantiations.

I hear you. But those kind of 'expert' claims aren't limited to GUI

> I would love to see a GUI library that is for those who have not only dipped
> their toe into the strange, but beautiful, waters of generic, and
> generative, programming, but for those who can actually swim in it.

I may not be a swimmer, but I can float with the best of them. ;)

Seriously, I understand your wishes, but I only want generic/generative
techniques used if it enhances the usefulness of the library.

> Ok, it
> would not get a "wide" appeal. So, what? If we looked for that, we already
> have a bunch of solutios to choose from. We have all used Tk, or wrappers
> thereof. Most of us have used Qt, I think. Note that the "wide" market does
> not care about platform-agnosticism.

My perspective is waaay different. I want a cross platform GUI library
that uses modern C++ techniques - where applicable - to give me the
tools to create GUI applications quickly in a natural C++ syntax. I
want something that has wide appeal, so many people use it and it
becomes a _useful_ skill (and can find a valuable home on my resume).

I have yet to find such a library [1]. And I'd be very willing to help
develop one if enough momentum was thrown into it. Let me expand on
that - I've seen quite a few GUI libraries started but, because it is
such a large undertaking, many lose steam and development trickles to a
standstill. I don't want to expend effort unless I'm confident there is
support, I just don't have the time.

Also, in my experience, your assumption that the wide market is
satisfied with a platform specific solution is not valid.

Andy, your "unitless" concepts are terrific, keep 'em coming. :) Having
said that, first and foremost I want a library to provide me with
'normal' widgets, the 'canvas' comes secondary.

Just my 2c!


[1] Other GUI libraries and some of the issues I have with them:

o Win32 Generics
   - Good work John, but it's not cross platform, an absolute
requirement for me. I understand your argument that it's _much_ harder
to create a cross platform library (and agree!) but I think it's far
from impossible (we use an in-house cross platform library here at
work). Personally, I'll avoid using a GUI library if it locks me into a
platform, it's just not worth it.
   - It's also not that simple to use because you need intimate
knowledge of Win32. Not a problem for me but it's a step backward IMO.

o wxWidgets
   - One of the more developed libraries but it really needs an
overhaul. Message map macros??
   - Even though it has limitations it would still probably serve as my
pick of the alternatives because it's quite deep, well documented and
well supported.

o Qt
   - I've done little development with Qt but it unnecessarily requires
a pre-preprocessor (yes, I understand the reasons for moc - they were
valid years ago but I don't believe they are any longer).
   - The sytax is, like wxWidgets, quite 'old school'.
   - Of course the Windows licensing is an issue.

o Notus
   - Promising but over-templated IMO.
   - I clash with some of the design decisions (well, I did when I was
keeping tabs on it).

   - Not cross platform.
   - Not effectively maintained.
   - Not effectively documented.

o Win32
   - Lots of issues.

   - See above.

I've "played" with FLTK, FOX and GTKMM too and they all seem like
reasonable libraries. But I haven't used them enough (and wasn't
impressed enough) to comment further.

If I should clarify any of the points please just ask... :)

Boost list run by bdawes at, gregod at, cpdaniel at, john at