posted on 2007-01-01, 00:00authored byJeffrey Stylos, Brad Myers
When creating new application programming interfaces
(APIs), designers must make many decisions.
These decisions affect the quality of the resulting APIs
in terms of performance (such as speed and memory
usage), power (expressiveness, extensibility and
evolvability) and usability (learnability, productivity
and error prevention). Experienced API designers have
written recommendations on how to design APIs, offering
their opinions on various API design decisions.
Additionally, empirical research has begun to measure
the usability tradeoffs of specific design decisions.
While previous work has offered specific suggestions,
there has not been a clear description of the design
space of all possible API design decisions, or the quality
attributes that these decisions affect. This paper
puts existing API design recommendations into context
by mapping out the space of API design decisions and
API quality attributes.