>>24
Yes, it is.
I have extensive Windows API experience and some Xlib experience too. But more than that I'm a system programmer, and I can say, from my knowledge, that writing drivers, real time tasks and kernel code in general is much tougher than writing GUIs, whether Xlib or WinAPI (or whatever you might be relating to) is "broken".
Listen.
Many people call libraries and languages "buggy" and "broken", but in fact these same people are the ones who write sloppy programs, do not know how to properly use the toolchain, do not know how the language they're using operates on the lower levels, do not follow the relevant documentation, do not know what they're doing, thus do not know what they're talking about in the most preliminary level. This, unfortunately applies to a very wide range of clueless people.
These people were inserted into the computing world by the democratization of technology, internet and so on. But instead of paying the hard work necessary to master the
bare minimum techniques required to perform a decent programming task, these lazy bums learn shitty hipster languages, write a couple of ridiculous toy programs and scripts and think they're experienced enough to hold criticism against battle-scarred veteran languages, libraries and technologies in general. And they do this because this same democracy
demands that these people hold an opinion (regardless how stupid these might be) and share it out aloud.
A strong sign of this behavior is relying on citations of well-known figures or authorities which endorse their own opinions, thus attempting to legitimize the latter by mirroring on the renown of the former. Most people actually don't have a single clue what real world programming is all about, but they were well fed with FUD and incredibly smelly misknowledge about computing in general.
Now, I'm not claiming you are one of these people, and I even hope you're not. But they're surely around here, in throngs. Look at the enormous volume of criticism against C++. Look at the enormous volume of criticism against Lisp. Look at the enormous volume of criticism against Java.
If you find a bug in Xlib, well, file a bug report. Participate in the relevant mail-lists. Give suggestions. Turn in some piece of code. Many people has employed hard work in it, and many people expended great effort in a number of other respected projects, in the hope it will be useful. Just don't blabber shit around gratuitously -- it puts you straight down in the same level the people I've described above, when sometimes you deserve a higher profile.
This is just my sincere and polite recommendation.
>>25
Qt is a very good C++ library. It is more than just decent on almost every aspect I can think of for the needs of the average application programmer. In my opinion, Qt is a must for every C++ application programmer.
I have just superficial knowledge of Gtk and GLib, and from that faint inspection I state they're excellent works of heavy language abuse, but some sort of abuse that fits rather well in its context. Like a polite and delicate way of raping someone.
>>39
This is not needed if you're using template repositories or other template models available. In the worst case, you can force explicit instantiation,
as you would do if you were just using generic C macros.
Most people don't even try to solve the problem before critizing something, ain't it so.
C++ bloat mostly comes from improper inlining and from exceptions -- specially if the code is making heavy use of exception specifications. Exceptions in C++ really offers a number of problems. Without exceptions, the final C++ data model is very similar to the C data model, the only remaining difference being in virtual inheritance (if ever used).
In other words, if you don't use exceptions, and use inlining just properly, your average C++ code is about the same size of your C code.
>>48
Whenever people cite "two different compilers", they're really trying to say "GCC and MSVC". (They don't state that explicitly because the implicit FUD will strengthen their argument.)
GCC employs the Itanium C++ ABI, while MSVC does not. This is why they're not binary-compatible and this is why it is
extremely stupid to attempt to link code produced by them together, because
it is clearly stated that it will not work. And this is why parroting such a fact is simply fueling the already deep well of misknowledge and stupidity regarding C++.