[wx-discuss] aspects of a safe future

myLC at gmx.net myLC at gmx.net
Fri Sep 14 07:52:18 PDT 2007


Moin, moin! =)


> Which future prospects does the framework wxWidgets have?
> Are there founded and meaningful aspects, which guarantee
> a secured future of the framework?


First of all, thank you for your post. So far, all I've ever
received from <wx-discuss> was a little Spam, instead of the
vivacious discussion about wx V3.0 I had hoped for...

At the moment wx 2.8.x is a (quite) reliable framework for
many targets (reaching from ancient machines to modern
pocket devices).
Wx development started way back, before C++ (and the
compilers in particular) had even remotely begun maturing.
Most of the problems arise from this very fact.
As for today wxWidgets still ignores most of C++'s
accomplishments, making programming not that much fun.
It's basically like a better MFC. Portable, with a really
nice layout management, etc. - but still not that much more.

I tried out a few toolkits (wxWidgets, Qt, GTKmm, FOX, FLTK,
Juce, Utimate++ and others). They all seem to have similar
deficiencies: either they are incomplete (such as the GTKmm
patchwork) or they withhold major C++ improvements (such as
polymorphism, exceptions, etc.) from the programmer.

So far the most complete seems to be Qt. The documentation
is quite good too (including examples in the documentation
is an admirable idea;-). The downside: it's commercial;
also: no namespaces, exceptions and take a look at their
QFtp class for a repulsing example...

Second in completeness: wxWidgets (with a better layout
management), which also comes with a good documentation.
The problem of wx, as stated, comes with its roots. Hence,
also no exceptions, namespaces and even no signal/slot
mechanism (callbacks aren't that fancy, signals that work
over threads/processes are by far more practical). Also the
approach to use the system's functionality has its pitfalls.
For example Windows itself is unable to provide a decent
Unicode support. A 16-bit wchar_t simply doesn't do the job.
You cannot fit all the languages and their symbols in there.
As a result you cannot really use Unicode (such as UTF8)
with wxWidgets, because it won't be PROPERLY supported on at
least the Windows platform. The Qt/Juce approach is much
better when it comes to such aspects; it is also more
consistent (you can still preserve the system's style - see
Qt).


Consider the following example - this is how it could be:

try {
	...
	ftpstream( "ftp://ftp.29A.net/.gonaria" ) >> buffer;
	...
} catch ...


The ftpstream could be derived from multiple classes. That
way you would have the benefits of the stream, while still
being able to call specific ftp functions (a.k.a.:
setMode( ASCII ) and the like), plus you could use
signals/slots and deal with the problems (a.k.a. exceptions)
where you want to.

That's how it could be - and could have been, if only a
fraction of the work that went into wxWidgets and the many
other toolkits would have been put into a joint, more
"future driven", approach.
C++ came with an incomplete STL. The biggest bummer: no GUI
support. Also the STL itself has many deficiencies, like the
absence of Unicode (UTF8 would be nice, wouldn't it?).
Think about only a portion of that work going into
completing C++ and fixing up the STL - putting it at eye
level and above Java or C# (reads: "C crooked")?
Unfortunately this is not going to happen by itself.
The BOOST guys run a different (one-man?) show. Rather
"conservative" - in a negative sense. I believe that even
the idea of including GUI functionality seems repelling to
their chieftains...

That's why I put my (only?) hopes into wxWidgets V3.
A new beginning?
Wx 2.8/9 could continue to mature and support all exotic
(and extinguished) platforms, while wxWidgets 3 could be
something new - incorporating new C++ features (including
the proposed language extensions - yes, BOOST where it makes
sense). It wouldn't build with all compilers (eventually
they evolve too), yes. So what? You'd still have wxWidgets
2.8/9 for that purpose...


As previously stated, I was initially looking for
discussions regarding that very subject on this list
(does this need a cross-post? Help!).


Not sure if this is exactly what you were inquiring about,
Stefan - but I sure as hell hope so... ;-}


Regards,
                                        LC (myLC at gmx.net)



---------------------------------------------------------------------
To unsubscribe, e-mail: wx-discuss-unsubscribe at lists.wxwidgets.org
For additional commands, e-mail: wx-discuss-help at lists.wxwidgets.org




More information about the wx-discuss mailing list