May 26, 2005

API Decoder Ring

I have the honor of serving on the Board of Trustees for the Smithsonian Institution's Cooper Hewitt, National Design Museum in NYC. The thing I enjoy the most from the experience is to learn how a government-operated museum works. It's the kind of thing you'd never think would be terribly simple in structure or procedure. Given the current political climate of the US you would think that frivolous things like museums might be on the downfall. It turns out there is a great deal of positive leadership currently in position at different levels that is thankfully keeping the concerns of culture and general delight as part of the ongoing mission of the US.

At a recent meeting, I had the opportunity to explain what an "API" is. Given all of the press that Amazon's API and Google's API have gotten in the recent press, the assumption is that everybody knows what an API. I think if you've never programmed before, truly understanding what an API is does not come natural. When I google "what is an api" I get many definitions that make sense in computer-ese, but not in everyday peoplespeak.

In short, an API can be thought of as a company's internal telephone book with descriptions of key personnel's titles and job descriptions where you (the outsider) are free to call those people up to do your bidding. Some API's like Google's and Amazon's give you (the outsider) a limited number of phone calls to different sections of the company as a way to make sure that many outsiders can reliably get their phone calls answered.

As you can guess, in the real world you would never want to be able to have anybody call up employees in your company and expect to get tons of work done for them. There's this thing called "money" that makes the world go around, and there wouldn't be enough cash to pay your own people to service all of the outsiders. Turns out on the computer, the people answering calls are just little bits of program code that are not unionized (yet!) and thus are able to handle a great deal of capacity in a tireless fashion.

Thus the term "Application Programming Interface" begins to make sense (even to me). You have a running computer application that has an interface (the "phonebook") that one can program (the "phone call") externally. API's are the bread and butter of today's sophisticated systems. Don't be seen without one.

Posted by maeda at May 26, 2005 12:17 AM
> Tech | Posted at 12:17 AM

Thoughts On Simplicity   By John Maeda