The annual Gluecon Conference is a celebration of everything API, mobile, and cloud related. I had the opportunity of attending this past May 22-23rd event. While there, one of the most profound sentiments came at the end of Steven Willmott's presentation.
Steven is CEO of 3Scale Networks, an API management tools company. He was presenting on the App-ification of the Web. He correctly pointed out that programmers are tasked with developing for increasingly varied ecosystems. This increase often comes with little (or no) changes to budget or resources. Luckily, this has coincided with the rise of decentralized architectures necessitated by mobile devices. Skipping ahead, the conclusion is:
The web is just another app.
The advantage of having an API is that it provides isolation, encapsulation, and documented endpoints. This standardizes business value in a device agnostic way. I'm already spending the man-hours to develop an API for "alternative" (but quickly becoming primary) platforms. Why not have the APIs replace the traditional client-server model for the website, as well? Doing so results in Single Page Applications, or SPAs. Examples include Evernote, Twitter, and even the newly launched Shoptopia.com (which I've mentioned before). It's not a new concept. Bagcheck had a postseveral years ago on how someone could use their site from the command-line, via their APIs, if they so chose. Now that's some progressive enhancement.
We should be beyond the conceit that mobile, tablet, and desktop screens are the only ways someone may wish to consume our content. I'm not just referring to a hazy Internet-of-things notion somewhere out on the horizon. At Gluecon I saw a handful of 'Glassholes'. GM demonstrated its new developer APIs for in-car applications. Both are completely new contexts which will require new UI/UX. Starting with a device agnostic approach frees backend architects to focus delivering business value through APIs, regardless of the end screen.
Dynamic languages like PHP, Ruby, Python, CFML, etc. will decreasingly be called on to generate HTML output. Instead, they will be measured by how adept they are in crafting RESTful webservices. They will have to have excellent cross-origin resource sharing (or CORS) support. Their parsing and producing of JSON cannot be bolted on or clunky to use. Finally, it will be less about how clean their rendered HTML templates are, and more about the ease in which they allow developers to abstract a myriad of backend systems into a single concise, predictable set of nouns and verbs.
Like so many things ("mobile first", "responsive web design", and "wear clean underwear when going out") it may seems obvious. But because something is obvious in hindsight doesn't mean it isn't a profound change in how we build things going forward. The web is just an app. Program accordingly.