Well-designed APIs are a joy to use  poorly-designed APIs are cumbersome  confusing and frustrating  just like everyday things Would you buy a Kitchen Radar 3000? Are you able to use any washing machine instantly without reading user manual? Why QWERTY layout was invented? Like everyday things  APIs must have a clear purpose  must be used easily by anyone and are constrained by their environment