API Design is one of the most fundamental and important parts of programming. Yet, despite many years of experience and improved programming languages, poorly designed APIs are as common as ever. This article presents examples of poor APIs and provides guidlines for how to improve on the current sad state of affairs. The article also suggests that, to address the problem at its root, we need to look beyond mere technical issues and make cultural changes in education, employment policies, and legislation.
© ACM, 2007. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published in ACM Queue Magazine (Vol 5, Issue 4, May/June 2007).