
On Wed, 01 Sep 2010 15:47:27 +0200, Ilya Sokolov <ilyasokol@gmail.com> wrote:
[...]
Regarding the header files above: I wonder whether it makes sense to get rid of actual helpful functions like boost::algorithm::ends_with() only to remove a dependency on another Boost library. I understand the case about Boost.Filesystem which requires to be built. But it's a kind of strange goal for Boost libraries to reuse as little code as possible from other Boost libraries?
"Negative effects of coupling become obvious when one library uses a second library which uses a third, and so on. The worst form of coupling requires the user understand each of the coupled libraries. Coupling may also reduce the portability of a library - even in case when all used libraries are self-sufficient..."
I quote then the paragraph starting with "The benefits of using components from other libraries...". ;) Anyway, while it all sounds good in theory how many developers are out there trying to use single Boost libraries without installing the others? It sounds like a bit too much effort reinventing what has been implemented in other Boost libraries for what I expect is a relatively small group of developers? I heard much more often that developers didn't want to build libraries but simply include header files. That said I wouldn't mind to drop the dependency on Boost.Filesystem as currenly it is indeed only used because of an exception class. As I think this is the right class to use though design decisions will then be affected by library dependencies! Are we sure that we want this? Boris