I have read a very interesting post at 0xDECAFBAD.
The most interesting sentence in that post is the following:
An API is an admission that you haven’t the creativity or time to build everything your website needs.
In a general sense I tend to agree to this sentence. It is true that there are plenty of web services that launch a very basic services, open up APIs and let their users make the hard work to put new features into the service through the use of APIs.
In some way also Facebook is leveraging this approach through their application development. Plenty of users put an effort to develop new applications and make the service stronger with no cost for the service owners.
On the other side I also think that there are cases where this is not really true. If you are developing a service you will need to focus on mainstream features that most of your users (customers) may want to use since, at the end of the day, you want to be profitable.
The availability of API will cover the needs of those user who do not fall into mainstream feature development tailoring the service to their needs. I think that in this case you are not outsourcing creativity.
These kind of considerations may vary from service to service and from user to user but I think that making a statement like the one I have reported from oxDECAFBAD is quite a strong approach to the subject.
If we bring this to the mobile world it is quite easy to see that there are not APIs at all. Well, if we think at mobile phone application development it is quite clear that there are APIs to be used to develop application.
What I am talking about is the possibility to extend the mobile phone native applications with something like plugins. Every single application should offer the developer the option to increase its funcionality. Just to make a simple example: idle screen. This is a perfect place where plugins and APIs would perfectly fit. Open that application so that developers may hook their application at the idle screen and let the user choose which applications have to be there.
I think this is an API usage that is not an admission of failure.
Why do I blog this? I think that Les raised a very interesting point in his post.