It is very popular lately to build open applications, allowing other developers to build new functionality on top of your services, allowing diverse services to talk to each other, to interact in ways that were never possible before.
When you import your contacts from gmail or your email application into facebook for example, you are using an API (an application programming interface), it is like a plug to that particular piece of software, and trough that plug there are things you can do like sync, communicate, transfer, control… and many more actions.
The API as a concept developed at an incredible speed from very primitive structures (import/export) to complete functional frameworks making every piece of software infinitely more useful and complete (facebook connect).
Today we can walk into a location knowing who among our friends are close by (foursquare, places). Communicate with them singularly or “shout” with the hope someone will listen (status updates, facebook, twitter). We can challenge other friends at a game of poker or finding out that our classmate from junior high is also playing and he is way ahead of us (zynga, playfish + facebook connect). We can aggregate news from each website without even browsing to them (RSS, google reader, netvibes) and share what we find interesting with our various communities (facebook, twitter, youube, reddit, digg), making that particular piece of information that normally would be lost if not picked up by the mass medias go viral. We can discover music by following what the crowd is listening to (last.fm, pandora, ping, spotify). We can have access to famous people unbiased thoughts directly from them (twitter). What we write or what we read leaves a mark, every opinion matters (blogosphere, google).
We can do all of the above, in several different ways, using very different applications and interfaces, all trough access to each services API.
But if you thing about it what are this services really providing? Isn’t everything that I listed connected to a social behavior?
Mark Zuckerberg designed facebook modelling the interactions of university students, observing them and putting into a hierarchy their actions, understanding what made them tick. Twitter tapped into the vanity of the human intellect, making everybody believe that what they are doing or thinking is meaningful enough to communicate. Foursquare not only made the regular trip to the coffee shop a rewarding one, as a dog trainer does with treats but it tapped into how lonely people really feel and made everybody feel closer on a map.
The whole “social” web is based on what Aristotle discovered in the 390 BC:
Man is by nature a social animal; an individual who is unsocial naturally and not accidentally is either beneath our notice or more than human. Society is something that precedes the individual. Anyone who either cannot lead the common life or is so self-sufficient as not to need to, and therefore does not partake of society, is either a beast or a god.
Every application out there is interacting with a universal API, the Human API of this “social animal”. In order to be successful an application needs to make the best use of it. The good thing is that it is Open Source, the tricky part is that there is no documentation or manual, that is why you just need to get it right, that is the only key to success.
So my first question into evaluating a venture is: does it really tap into the human API? Does it make use of all the key functionalities? Does it do this with ease or is it using a lot of resources ? Lets not forget that the Human API has its rules, we just don’t know them, we are not sure how many calls we can make per second/day/month, we are not sure what is the correct communication protocol, we are not sure about language and we are not sure about the time table for certain functions. We need to guess all of that, or derive from previous experiences, and the venture that does, takes off…
Who would have thought that all of us in the web community were at the heart really social engineers?
In an interview Zuckerberg said: “We build things because we simply like to build”, I think I know why: we like to build things because we want to understand how everything really works! The more we build the more this API will be documented, the more documented the more we will understand and evolve our applications. This is the real beauty of Open Source…
It is the Search for Meaning 2.0
“In truth, without deceit, certain and most veritable”