On Apr 9, 2009, at 2:23 PM, Robert Ramey wrote:

Mike Marchywka wrote:

Have you considered java for the gui? You can get
platform-look-and-feel etc but if your customers absolutely need it
to look like Windoze, well... I wouldn't rec it for performance but
if you need a gui it
is safe and has a lot stuff and has a native interface. It
is also a bit more portable than MFC LOL.

I was always turned off by java.  My perception was that
as an interpreted language it was going to be slower than C++.
Why learn yet another language just to go slower.

The clincher was that I got a contract to take over a project
that had missed its delivery target and the software wasn't
even close.  The hard ware was all done and tested so there
was huge financial pressure to deliver the machine.
(usually I only get a job when every other
alternative has been exhausted).  The previous programmers
had taken this approach.  It was very, very slow. This ratified
my prejudice.  I took the job with the understanding I was to
produce a working prototype in 30 days.  I keep the C++
part and added on a gui with mfc.  Made the deadline
with a couple of days to spare.

And, I have to admit I'm still ticked off that the utiliy app
that came with my wireless card has to be killed or, even
while minimized, it uses up all the GDI objects in a few hours and
crashes my machine. If you need to include some production code as an
"Afterthought" java avoids really bad things like memory leaks etc...

The hassles with things like memory leaks, threading races, etc
with this application were what led me to boost in the first place.
That's how I got here.  Currently I prefer to use boost for the "guts"
and MFC for the "GUI viewer/manuiplator".  But they don't always
play nice together.  This my core complaint with MFC.  It's too
coupled so you endup sucking in a lot of stuff you don't want.

When I look at wxWidgets, QT, etc.  I see they have classes
for strings, multithreading, etc.  This gives me pause as it would
seem that the GUI layer might be coupled to other parts of
the library which I would prefer to use boost for.

I've also been looking at WTL (microsoft Windows Template
Library) which looks like a thin templatized layer over Win32.

I'm sort of limited in that I need a system which "just works"
rather "can be made to work".

Have you looked at:

http://smartwin.sourceforge.net/

I have never tried it (if I did Windows GUIs I would check it out) so I cannot vouch for it, but it sounds interesting:

"SmartWin++ is a modern designed C++ library, it uses STL where possible and boost where needed..."

"...We believe that STL and Boost are good tools and should be used in favor of creating your own bug-prone classes to substitute them! If it exists in Boost or in STL it does NOT exist in SmartWin++!! :)..."

"... SmartWin++ does NOT try to solve your marriage problems. It cares only about GUI. If you need a network library, search elsewhere. SmartWin++ will not solve your TCP/IP problems or your HTTP problems or your Dijkstra's Extra problems! SmartWin++ is about GUI, nothing more, nothing less! We try to be the best in ONE area which is GUI development! This makes the library small, slick, fast and good looking! ;)"

-- Michael