Application programming interfaces (APIs) can seem confusing--in a theoretical sense, we say they're a set of standards, like Morse code or the periodic table; in our day-to-day endeavors, we see a different type of thing: a RESTful web API might actually be a portal to perform CRUD operations on a dataset, and a keyboard or mouse might be conceived of as a primary interface to a type of program. What ties these concepts together?
An API is a means of describing or interacting with an abstract concept. Language is our primary means to relate abstract concepts--we know what we mean when we say "dog" and "cat" and even when we say "love" or "hope;" the interface is a means of referring and also the transfer of reference itself--the spoken word or typed letter or Morse-encoded signal.
The tricky thing is that the way we describe abstract concepts may shape the way we view quote-unquote objective reality.
In 2013 America, we have a word for every shade in the Crayola box. In the Homeric age, there were less than ten color words, and they were used quite differently--Homer describes the sky as bronze, honey as green, and the sea the color of a red wine. In some cultures, there are just two color words--one for "the warm color" and one for "the cool color"--or what we see as encompassing all of warm and cool color respectively. The real question is: do these cultures see in only two colors, while we perceive many more? Does our means of referring significantly shape our actual experience of "objective reality?"
The pragmatic answer, of course, is yes. In the early days of the DOM, we had just a few objects to refer to--images and forms. Then Netscape and Internet Explorer devised competing worldviews on the organization of objects within a document, and DHTML became a dirty word--impossible to implement across browsers with different concepts regarding how the same thing worked. Finally, the W3C came along to introduce DOM Level 1, and restore some sanity in the world. But they conceived of the DOM API in the same way we conceive of our "World API"--the one filled with dogs and cats and love and hope--as a much larger interface: a way to refer to objects in any document in any markup language from any programming language in the world.
These standards offer us a shared, implementation-agnostic convention through which to understand a concept, or they may be one implementation of the interface itself--a keyboard used to type the English language--a shared representation of the world. In this sense, the APIs we build are the most important things we work on, as they fundamentally shape the way we, and others, view development.