Martin Fowler: humane vs. minimalist interfaces

Martin Fowler recently posted a nice little essay demonstrating the difference between two schools of thought on designing programming APIs: humane and minimalist. In this essay, the humane interface (as exemplified by Ruby) is contrasted with the minimalist interface (as exemplified by Java).

This is a very interested read, and really captures the heart of the Ruby philosophy.

It also made me wonder if Python falls in to the minimalist category with their philosophy of “there’s only one way to do something”. I’ve never used Python myself, so I’d appreciate hearing from current or former Python developers on this.

Humane interfaces do more work so that clients don’t have to. In particular the human users of the API need things so that their common tasks are easy to do – both for reading and writing.

There are good arguments on both sides. Personally I lean to the Humane Interface approach, although I do think it’s harder.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s