Hacker News new | past | comments | ask | show | jobs | submit login
The Little Manual of API Design (troll.no)
207 points by trucious on July 23, 2011 | hide | past | web | favorite | 16 comments

One of the most interesting things I ever saw about API design was a presentation by Casey Muratori called "Designing and Evaluating Reusable Components".

It's the first time I saw anyone acknowledge this profound insight: sometimes, writing a practically useful API entirely at the same level of abstraction simply isn't possible.

Looks like it's available here, now:


Also noteworthy is the "How to Design a Good API & Why it Matters" talk

video: http://www.youtube.com/watch?v=aAb7hSCtvGw

pdf: http://lcsd05.cs.tamu.edu/slides/keynote.pdf

One library I've found very useful to study is libcurl -- it has a very elegant degradation system. Easy things start out easy, and when the user chooses to handle more complexity she can switch to a lower-level set of calls.

Thanks for this post! This is the kind of content I wish HN had more of.

There was a discussion in reddit about pthread api design http://www.reddit.com/r/programming/comments/bmnkl/pthreads_... .

Edit: sorry this was replied to smunz's comment.

Absolutely. Any suggestions for places to find more content like this?

Not to leave HN, just to complement it ;)

There is surprisingly little written about good API design. Maybe it's because the important things to say have already been said, but I have my doubts that that is the reason.

I suspect it's partly because of the difficulty involved in measuring the quality of a given API's design. How do you separate the success resulting from the usefulness or popularity of the technology from the design of the API?

That was the first thing I though on starting to read this. How do they know they've actually got it right? Feedback from users?

This is an excellent little PDF that was very useful to me when I put together a recent talk titled "API Design Matters". It's amazing how a bit of energy spent focusing on an API's design can improve so many aspects of both using and developing said API.

I appreciate the small reference to "The Elements of Style" by Strunk. That book has helped me refine not only my writing but also my software design.

API design is something I have been meaning to look into - thanks for the link.

If you're looking to save this link, it's on Proggit.

If you click your name in the orange bar at the top here, and click 'saved stories', you can find all the stories you have upvoted.

Never understood what that link meant - thanks.

The link is to the PDF version already. It will take you to Scribd only if you click the [scribd] part.

Registration is open for Startup School 2019. Classes start July 22nd.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact