Couldn't disagree more about Boost. There are simple, elegant parts of Boost, and then there are incredibly complicated parts of Boost. Some of those complex parts also happen to be powerful (like Boost graphs). Spirit is perhaps an example of a part of Boost that doesn't justify its prolixity; Boost::Function another, and a case where C++ is really what's to blame.