"Life moves pretty fast. If you don't stop and look around once in a while, you could miss it." - Ferris Bueller
On January 9th, 2007, Steve Jobs stood on the stage at Macworld and unveiled the iPhone. Watching the keynote again, all the familiar Jobs keynote superlatives are there. However, even now, the effect that the iPhone, and surrounding ecosystem, has had on modern software development practices is likely to be understated.
APIs delivered over HTTP, even RESTful APIs, existed prior to the iPhone. Salesforce, eBay, and a host of newly emergent social applications had some form of API, typically via XML syntax, throughout the aughts. But in the ensuing gold rush to have first mover advantage within the app store, companies were forced to think about the way they disseminated business value in a whole new way. Rather than building single purpose web applications, architects began creating abstractions between interfaces, implementations, and delivery platforms. The iPhone gave rise to the app economy. But that app economy was powered by APIs.
However, a single-purpose API, one that only supported a sole app, doesn't maintain that state for long. Valuable functionality, like water, is shaped and re-shaped into a variety of new vessels as the need arises. Names like "Roy Fielding" and "Ted Nelson" were dug out of history and introduced to new audiences in the exploration of "hypermedia". Highly composable architectures, like those from Netflix, simultaneously begat what we now know as "microservices", had us googling "Melvin Conway", and demonstrating the benefits of "cloud". The cloud, with its own APIs for management and control, nurtured new developer paradigms like "continuous integration" and "devops". To manage the complexity, "containerization" became a thing, before being joined by "serverless" software.
A lot has happened in ten years. I fully acknowledge this brief history is highly reductionist and (probably) discredits the complex history each idea accumulated on the way to becoming a thing. But the iPhone, and the resulting smart phone era, was one hell of an accelerant. As of July, 2016 Apple has sold over 1 billion iPhones. When that number is put into perspective with all the Android devices also sold we see the size of the wave that reshaped the development world. Without it the practice of web-based API design would be in a very different place.
It almost makes me nostalgic enough to fire up a LAMP stack on a VM for old-time's sake.
At the beginning of this year, I'm keen on revisiting first-principles. Things change and it is essential to challenge whether those assumption that where truths yesterday remain teh rocks we should cling to today. I'll probably re-read this great history of web APIs by the API Evangelist. Or John Musser's original Programmable Web blog post (awesome to find it still there, eleven-and-a-half years later). Pamela Fox goes back even further in her excellent recap of client-side-web-APIs. For those that want a bit more academic rigor, Jacek Kopechy, Ph.D., has a PDF entitled "A History and Future of Web APIs" that is worth a look.
Welcome to 2017, everyone. Life moves pretty fast. If you don't stop and look around once in a while, you could miss it.