May 19, 2003 | Category:

The Problem With APIs

There’s been a lot of talk about APIs recently. Most of it can be summed up reasonably by Evan’s post on the API situation. For anyone bringing a CMS into the world around now, it’s a bit of a nightmare situation.

Everyone (Dave and Evan – the brains behind the two big APIs – included) wants a singular but fully functioning API to hook into. To be able to write once and only once, and forget about it for the near future. Currently, it isn’t possible.

Rather than get into the politics and technical reasons behind the split; I thought I’d say that as the developer of a new CMS, I currently implement neither API. I will, some day, implement one but as of yet haven’t. Why?

First of all, I’m the only person to use a remotely new version of Finetto (the aforementioned CMS). I’ve given other sites stable working versions (Finetto was actually written for a site that I was working on, where the owners didn’t have the knowledge to update manually), and it will be used on other sites (once I get a rather unique feature finished). But for now, it’s really just me, and I’m happy using the web interface for it. I know it’s secure enough to let me log-on from other computers without compromising anything.

Secondly, the browser window is the lowest common denominator of any net capable application. I’ve checked this from a number of devices, and they all allow access through the web interface (hooray for somewhat functional XML parsers embedded in devices). This kind of interoperability puts API interoperability further down the list. More devices support browsers than custom interfaces.

Admittedly, another reason is that there are 2 problems with Finetto stopping me implementing an API. One is trivial, and I could write code for in 5 minutes. I don’t because there are things much higher on my priority list (non-crufty URLs and a comment system have been on the list for too long to ignore now). The other reason is slightly more complicated, but I have the necessary script to remedy it, I just need a lot more time than I have to do so.

Finally, because there’s not enough time in the day. I’m a student. I have exams getting imminently close, a girlfriend, friends to do stuff with, alcohol that needs drunk etc. You get the picture. There’s not enough time to do all that as there is, without having to weigh up two APIs to implement. If there was one, then maybe, but until summer it’s just not going to happen.

I don’t know what the point of this post was if there was any. Hell, I’ll probably do a Zeldman and implement an API by this time tomorrow. But perhaps I’m trying to say prioritise, make sure you do things because you should rather than because everyone else is doing it, and don’t do drugs, kids.