Whenever the mainstream business media starts to cover a technology as though it is some sort of wonder drug (like it has for APIs, or application programming interfaces), it creates a groundswell of curiosity. People want to know what exactly the wonder drug is? How does it work? How might it benefit them? Where can they get some?
This series is designed to answer some of these basic questions for all readers, regardless of their level of technical expertise or perspective (business, technical, consumer, and so on). It is not meant to be the end-all, be-all encyclopedic explanation of APIs. Rather, it is meant to give readers the basics—to make you smart enough to intelligently participate in a conversation about APIs. We envision this series as a living document that we will add to and improve over time. We welcome your feedback with that objective in mind.
Perhaps the best place to start in this introduction to our series is to simply explain APIs as an alternative to something that anyone who has used an app is already familiar with: the user interface.
For decades, most computer software--programs that provide data like contact information or functionality like image editing--has been conceived and written with one type of user in mind: a human. No matter what chain of events is taking place under the hood of software, a human user is traditionally at the end of that chain. That end user invariably consumes that data and/or functionality through a user interface (UI)—one that’s designed to make the act of consumption as easy and even enjoyable as possible.
But what if that same data and/or functionality could be just as easily consumed by another piece of software? In this case, the UI concerns are very different. After all: Software doesn’t have eyes, emotions or intuition, so it doesn’t need an enjoyable, intuitive graphical user interface. However, as with a UI tailored to humans, software needs an interface that makes it easy to consume data and/or functionality.
Enter, application programming interfaces, or APIs.
An API is geared for consumption by software, which is why APIs are often explained in the mainstream media as a technology that allows applications (software programs) to talk to one another. In this context, the terms “application,” “software,” “machines” and “computers” are virtually interchangeable. For example, APIs are often discussed as being machine-readable interfaces (versus human-readable).
The significance of APIs to the modern world should not be underestimated. With each day, their importance to three primary constituencies—customers (the public), businesses (and business-like organizations such as government and non-profits) and programmers--seems to grow. Starting about 2005, (the same year that ProgrammableWeb was founded), the groundswell of interest in APIs has given birth to a cottage industry that isn’t so cottage anymore: the API economy.
Many people will be satisfied with the information we have provided in this report so far. But if you want to know more about how APIs work, what their benefits are, and how they compare to something we use in the physical world every day, be sure to read the remaining parts of this series starting with “What Exactly Is an API?”