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 . 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!
 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.
- 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
- 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.
- 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.
- 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 acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk