Monday, May 14, 2007

Problems With API's

Timba has a blog post where he made mention of the unreliability of API’s, expressing his reluctance to build applications on them since most platform vendors have this obnoxious habit of not making newer versions of their API’s backward compatible; Breaking applications that already exist on older versions.

I quite agree with him. Facebook isn’t the only one guilty of this crime. Amazon and Google are other API providers who have, on the sudden release of new and backward incompatible versions of their services, caused developers to scramble to rescue their applications from the hands of vagrant APIs.

Guess we are having such scenarios due to the fact that providing API isn’t much of serious business yet and as such, platform vendors don’t take into consideration applications already built on top of their services. The maturity needed to warrant such consideration has not yet set into the service vending model. So you can have a platform vendor change the structure of their API overnight without notification, after all, you didn’t pay a dime.

Not that having a free service should authorize such thoughtless treatment on the part of those who consume them but having a paid service will do a lot in instilling a level of maturity into the model. And when we have more of API’s being pushed to market a larger service, just like Microsoft is doing with their video streaming services, we will have more stable API’s.

Generally I feel it’s pathetic and unethical for vendors to be such a pain.

Dare Obasonjo also has a blog post on this issue in which he stated that:

“One of the primary goals of a platform vendor is to ensure that the lives of developers on their platform are as easy and smooth as possible. This means releasing a new version of the platform should not cause developers who have taken a bet on the platform to have to rewrite their code.”

He then went ahead to propose guidelines that might help in preventing the issue of backward incompatibility. His post makes do for good reading.

No comments: