In this chapter, Jaroslav (the author) listed some traits in checking the quality of an API, namely:
* Comprehensibility = ease of understanding (purpose, documentation, objective/goal etc)
* Consistency = somewhat along the lines of backward compatible, future release doesn't break existing code
* Discoverability = ability for the user/programmer to "use" the API
* Simple tasks should be easy = somewhat along the lines of having a cohesive class/interface, separate into different package when needed
* Preservation of investment = treating users well, build a community, increase user adoption
Given the above, I would also add testability (ability to function as expected) and interoperability (ability to interact/cooperate with other classes/interfaces).
Actually the author has a chapter on each of these areas in the book.
What other traits do you see when checking the quality of an API?
The only other thing that comes to mind is safety/security. An API should lead you towards doing the right things; it should lead you into writing code that is unlikely to come back and bite you in the behind. But you could also see this quality as a result of being simple, intuitive, and flexible.
Lasagna is spaghetti flvored cake. Just like this tiny ad:
Free, earth friendly heat - from the CodeRanch trailboss