In a similar vein as the Why do many open source projects have no documentation about their design or architecture? question, I'm curious: Why are so many libraries so lacking in end user documentation?
My view is this:
- Most everyone agrees that reading source code is more difficult than writing source code.
- Without documentation, one must read the library's source code in order to use that library.
- Therefore, using the undocumented library is more work than just recreating the library from scratch.
- As a result, if you want to have people use your library, you'd damn well better make sure it's documented.
I know lots of developers don't like writing docs, and I'll agree it can be tedious work. But it's essential work. I'd even say it's more important that a library have good documentation than have the best programmer's interface in the world. (People use shitty libraries all the time; few use undocumented libraries)
Oh, note that when I say documentation, I mean real documentation. Not Sandcastle/Javadoc/Doxygen boilerplate.