Comparing APIs

A brief post that I feel uniquely qualified to write, because I just spend 3 months wrangling with the current Twitter API, and got more or less the same functionality from Facebook in four days.

When Twitter was starting up, the API was a thing of simplistic beauty. You could get from start to Hello World in minutes. The years went by and Twitter changed a lot of things, and now the API is a minefield of difficulties. However, as a sufficiently motivated developer, I went through them. And got to where I needed to get.

A few days ago, I looked at my list of things to do that might involve a little investment, having dealt with most of the necessary fixes for the four products I'm maintaining (Fargo, Little Pork Chop, Happy Friends and Little Card Editor). It was a holiday weekend, a time that's good for digging in to complex problems. I decided I should at least look at the Facebook API to scope out how much work it would be.

To my surprise, and pleasure -- the scouting mission turned quickly into a production mission. I was able, in a few minutes to get a JavaScript app to connect to Facebook, and post a simple Hello World message. So I decided to go further, and see what it would take to post a picture to Facebook. There, the docs were a bit more scarce, and the posts on Stack Exchange more confusing. But eventually I found a good example, and after a few hours of fiddling around with it, I got it to post a picture to Facebook. (The big problem it turns out was base64 decoding, the internal JavaScript decoder wasn't doing the right thing, but it all worked when I included a bit of developer-written code.)

Then came the gnarly problem of figuring out how to arrange the user interface of Little Card Editor so instead of just logging into one web service, you could use two. I needed to do this without confusing users to the point of despair. Whether I accomplished that or not will be determined by the users, who now have their hands on the product, Little Card Editor 0.54.

I'm really good at letting big companies know when they screw up (see the previous post) so it's only fair to be equally vocal when they do an outstanding job. Someone at Facebook wants developers to be successful with their platform. I thoroughly enjoyed this work. To be fair I also enjoyed working with Twitter's API (I'm a glutton for tough technical problems). But there's nothing like breaking through on a super valuable connection in almost no time.

So thanks Facebook, really good work!

Update: Why the Facebook API works better for me.


Last built: Sat, Jul 12, 2014 at 3:06 PM

By Dave Winer, Monday, July 7, 2014 at 9:45 AM. So, it has come to this.