Matt said:
I am thinking of using Qt. In what sense does Qt extend C++? I don't
think you mean that they are building their own compiler.
No and yes (in that order). They have build something they call moc, meta
object compiler which has to run over all Qt Objects before compiling them.
It is however misnamed, since it is a pre-processor, which produces
standard c++ code.
If Qt
requires its own libraries for signals and slots and if those libraries
are licensed the same as the rest of Qt, then where is the problem?
Maybe those libraries can't coexist with the boost or other libraries?
Maybe you're thinking that supplantation of Qt signals-and-slots code by
the corresponding parts of boost will be problemmatic when/if those
parts of boost become Standard C++?
There were some clashes, because Qt uses "signal" and "slot" like a keyword
in their moc, which can of course clash. However both boost and Qt are
aware of this problem, and IIRC have provided workarounds.
I hope Trolltech isn't trying to become the Microsoft of Linux (in the
anti-standard, anti-interoperability sense).
Hardly. The moc compiler was a way of providing a weakly typed signal/slot
mechanism with a plain syntax. (in a time where template support was patchy
at best). Now Qt has the same problem as the standard, there is just too
much legacy code out there to radically change the infrastructure. Besides
providing weakly typed signals is difficult. (Whether it is a good idea is
a question for endless academic discussion, since each has their own set of
strengths and weaknesses)
AFAIK both use strong typing for signals. In a way that is more C++, but as
stated above it has its own set of problems.
So you're saying in some sense that GTK-- and boost are C++ and that Qt
is not. I guess I am ignorant of the details, but your post generates
FUD (whether justified or not) in prospective GUI developers. Please
clarify.
The moc compiler from Qt is certainly an addition, and in a way "taints"
the "pure" c++. However it is very well done, and gets in the way very
little.
I've made very good experiences with Qt. The only drawback is that you have
to pay license fees if you are doing closed source development, but you get
great support, too. (Also its seldom needed, since their documentation is
great.)
Regards
Fabio