

Programmers are People, Too (on Programming Language and API design) - prog
http://queue.acm.org/detail.cfm?id=1071731

======
demallien
His comments on focusing on what the user is trying to do rather than on how
it is going to be implemented is absolutely spot on. For me, this is one of
the big advantages that TDD has. It gives you the opportunity to think about
your API as a user first, before you try to do the implementation.

~~~
follower
When I'm working on an API design from scratch I like to mock-up a program
using the API even before I get to code. It can be as simple as a handwritten
example.

I find it a good way to get a "feel" for how the main parts of the API will
work and it enables communication with other interested parties.

(And I must be doing something right 'cos the API I designed for the libgmail
Python binding was described by one columnist as a "work of art"[1]. :) )

[1] [http://jonudell.net/udell/2006-02-07-gathering-and-
exchangin...](http://jonudell.net/udell/2006-02-07-gathering-and-exchanging-
email-threads.html)

------
daniel02216
This is pretty awesome. I wish that more APIs were better designed, though I
think that the best APIs come out when you can iterate on their design with
enough flexibility to remove the pain points and common questions.

The author gets it exactly right on the topic of Java's GUI APIs, which are
world-renowned for their terribleness.

