API Design Matters. - HENNING, MICHI (Communications of the ACM, 2009)
The article discusses application programming interfaces (API) used in the software engineering industry. An API is a set of routines, data structures, object classes or protocols provided by libraries and operating system services in order to support the building of applications. A good API, the author states, works without friction and deals correctly with boundary conditions. Topics include the different ways one can design an API incorrectly, the inherent difficulty in designing a good API, and the collateral damage that occurs when minor, isolated design flaws interact with each other.