APIs Are Like User Interfaces--Just With Different Users in Mind

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 anybody who has used a desktop or mobile application 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 offered with one type of user in mind: a human. No matter what chain of events was taking place under the hood of that software, a human user was traditionally at the end of that chain. That end user invariably consumed that data and/or functionality through a user interface (UI)—an experience that’s designed to make that 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, much the same way a UI is tailored to humans, software needs an alternative interface that makes it easy to consume data and/or functionality.

Enter, application programming interfaces, or APIs. 

An API is very much the same thing as a UI, except that it is geared for consumption by software instead of humans. This 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 “software,” “applications,” “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?

David Berlind is the editor-in-chief of ProgrammableWeb.com. You can reach him at david.berlind@programmableweb.com. Connect to David on Twitter at @dberlind or on LinkedIn, put him in a Google+ circle, or friend him on Facebook.
 

Comments (14)

udaykanthreddy

I have begun programming one year ago and i was searching for an explanation of what API is. Whenever i search for an explanation of What API is tutorials on REST API or SOAP API show up. I am really thankful to programmable web for making such a good explanation by taking into account all kinds of readers from noobs to pros. Hope you further develop this course by adding detailed explanation about web services from scratch.

david_berlind

Thanks @udaykanthreddy. I'm very glad that you're enjoying our content!  We have many plans to expand this part of ProgrammableWeb (API U) and do plan to launch content that will show you ... soup to nuts.. how to launch a Web API.

reboot

Thank you, very illustrative information 

Shishir-Malla

This seems more like a literature. Tech related writings should focus more in technical explanations rather than novel-like writings. I'm new to API, and could not get much information on What API is.

 

RickHough

I've been documenting (and latterly testing) APIs since the mid 1980's, and I think it's a nicely pitched introduction to APIs in the context of an open audience. It is well written and gives the reader a jumping off point for further research.

Wryhder

Thanks a lot for this. I've been reading supposedly explanatory articles on other websites (I'm a noob, granted). But I leave each website increasingly confused.

david_berlind

Hey Wryhder, 

Thank you very much for writing in. I take it that what you mean by this note as that we actually did a good job compared to other sites you have visited? If that's the case, we're glad that you finally found some content that meets with your expectations. If not... well, then we have to look for ways to improve! Let us know. Thanks.

David Berlind, editor in chief.

ankit-saini

Wonderful explaination, very useful to me.

Thanks

Peace Out

I have been scrambling all over the web since eternity to find a precise but holistic explanation of API, it's purpose and operation. Most sources had something relevant to say but kept me guessing, playing at either extremes (lacking depth or painfully detailed). Reading this series gave me an almost instant insight and left me with a euphoric feeling. I am extremely thankful to the author for such a terrific effort at sharing their knowledge with the sincere intent of enabling seekers like me!

Alesia_BON

The best explanation I've ever read of APIs, in a simple and "tangible" language. Glory to the authors and editors!