Boost vs Qt
-
At first: It's different
I'm using both, but more Qt than boost, I will tell you why:
first of all: both are professional libs
Qt is really comfortable to use
boost documentation is IMO not the best
but boost has some stuff, Qt does not have: smart pointers are better and more
We use boost test for unit testing our software (we used it before QtTest exists :-)
boost functors are pretty good and much better than STL support for it.
-
Great - now you have started the war ;)
We use boost and Qt together in our Qt based applications - but more Qt than boost. After some years of development with both libraries in my opinion:boost documentation is (really, really) horrible compared to Qt documentation and a real pain to read - to make it short: the documentation is simply bad
boost documentation is incomplete, not well structured and missing good examples
boost is focused on generic template programming while Qt is more focused on clean object oriented
programming
boost smart pointers are better than Qt smart pointer - and because they are easy to use the bad documentation doesn't matter here
the heavy use of templates in boost increases compile times (even on my core i7)
because of the templates boost compile errors are pure nightmare
boost has a lot of stuff that is missing in Qt (and vice versa)
boost libraries we mainly use here are: shared pointer, property tree (i like it), foreach, filesystem, multi-index, optional, serialization, thread
boost test framework is not bad - we use it for non Qt applications and libraries
Boost has a lot of great stuff. The problem is the really bad documentation. Even if a library is "high professional c++" or very "excellent designed" - without a good documentation it is useless or a pain to use. If you ever worked with the Qt documentation, which is IMHO the best documentation of any library I ever used, you will hate the boost documentation.
Another great thing on Qt are the lot of good examples. Sometimes, or often you can learn more from a good example than from a lot of documentation pages. boost is missing these examples and so it is much more difficult to use in my opinion.
-
For those who can read German. Here is the German wikipedia entry for boost: http://de.wikipedia.org/wiki/Boost_(C++-Bibliothek)
There is a section there specifying the "requirements for license" in order to be part of boost. The first requirement is that it has to be easy to read and easy to understand. :-)
In reference to the statements given here on boost's documentation, it is obviously refering to the license writing only.Is someone aware of the time line for becoming part of C++ standard?
-
Just for the records:
The english wikipedia entry: http://en.wikipedia.org/wiki/Boost_C++_Libraries -
Thanks to all for fixing and sorry for the broken link.
I had checked the English Wiki description of boost, but it is much shorter and does not have this interesting section. Therefore, the German version was posted.
However, in order to share the section in question here it is translated by Google:
"License conditions
To be part of Boost, a library must have a license, the following conditions are met:
It must be easily readable and understandable.
You must give each for any purpose (commercial and non-commercial) free copy, use and modification rights.
You must demand that the validity of the license is specified in each copy, or modify the software source.
You may not require that the license is specified in or generated executable binaries.
You may not require that the source code is included in or generated executable binaries.
You may restrict the use of names and description of the library to the standard version on the Boost website." -