Many FOSS libraries suffer form poor documentation - things keep changing,
and none of the programmers has the patience to update the documentation
and add new interfaces.
You often see the following in a reference manual:
connect(Addr address, int timeout, Connector& c) - connect to
a server.
After reading such a thing I say "ah. now _everything_ is clear. NOT!".
(Good) proprietary products tend to have much better documentation. On
the other hand, they tend not to come with the source ;)