Photo aggregation service Trove has revealed survey results of Hacker News readers (over 100 developers) regarding their experiences with various Application Programming Interfaces (APIs). The verdict was clear: the Facebook API resulted in the most horror stories, the Google API took second place, and the Twitter API grabbed third.
Programmable Web counted up the mentions of specific APIs to try to determine which one developers hated most. Facebook technically tied with Other at 19 API Headaches.
It's not clear if Facebook did so poorly for the simple reason that it has one of the most popular APIs, or if it really does deserve the title of "worst API." Regardless of the latter, it's obvious Facebook has work to do, and I would argue that it's exactly because of the former that it needs to step up its game. Google and Twitter are also used quite a lot, and Facebook so should strive to have less issues than them.
The respondents' biggest headaches working with the APIs included the following:
- Poor documentation
- Poor error handling
- Lack of example code
- Lack of test environments
- Lack of standardized libraries across languages
- APIs that change/break frequently
- Normalizing data to match internal data structures
- Line between use and abuse
- Arbitrary throttling (differences between services)
- Differing standards (REST v SOAP v XML-RPC, XML v JSON v POST, versioning v not, etc.)
- Getting services to talk to a dev machine behind a firewall
The seventh item on the list, "APIs that change/break frequently" got a lot of attention from those using the Facebook API. Most of these can apply to just about any API, not just the ones in the chart above, but it seems that Facebook was specifically called out too often.