in reply to Code reuse and clean packages

If your library is seeming big and gnarly to you, it will probably be really hard to digest for someone who is seeing it for the first time. Creating a refactored hierarchy can go a long way toward helping someone make sense of your code and gives them a nice warm feeling that each component is a encapsulated piece, free of action at a distance in all the other code.

It is true that that the build process becomes a little more complex, but once the makefile/autoconf scripts are written, it becomes simple for the user. Personally, if I see a C lib with an understandable layout and good docs, I'll live with whatever build process that is around. But the simplest build process imaginable won't compensate for a hard to understand library structure.

I think an excellent exampe of this is the Qt library. It has a funky build system, complete with its own moc preprocessor, but the routines are arranged and described so nicely, I can deal with signals, slots, and mocs.

-Mark