What makes you adopt an API?
makecheck: In addition to doing what I want, I appreciate APIs that make reasonable attempts at backward compatibility and clearly document their plans for changes (e.g. deprecation); this shows that the API providers respect their developers' investments.I also like canonical/primitive APIs.  Functions with side effects drive me crazy, especially if they're poorly documented and there is no other apparent way to achieve a goal.A lesser consideration is how pretty the API is.  While functionality comes first, I grow quickly frustrated with APIs that can't even be consistent within themselves (e.g. function doThis() and do_that() in the SAME CLASS), or APIs that are not really taking advantage of the conventions and capabilities of the language they're in (e.g. a C++ API that decides to write its own string class that does not add anything over the standard class).