A survey of over 100 developers, previously posted here on Hacker News, aimed to determine which external APIs were the most difficult to integrate into developers’ projects. The winner…or rather, the loser? Facebook. Developers mentioned the Facebook API the most in terms having bugs, poor documentation, never-ending API changes, slow response times, and other headaches.
The Google APIs were in second place, and the Twitter APIs came in third.
Image Source: Programmable Web
Of course, these three services are also the most popular among today’s developers, so it’s not surprising to hear that they are the top of the list for problems as well. Certainly, Facebook, Google and Twitter will come in higher than, say, the Digg API, which is hardly ever seen in the wild these days.
But it was Facebook that received the most complaints, with developers calling it “broken,” buggy and offering poor documentation. Twitter received complaints, too, but it also the most positive comments over any other service. Meanwhile, complaints about Google cited APIs that had been shut down or were missing.
They’re not serving their developers well. There’s bad documentation. There are problems with services like OAuth. APIs randomly change without warning. And there’s nothing even resembling industry standards, just best practices that everyone finds a way around. As developers, we build our livelihoods on these APIs, and we deserve better.
Other interesting results from the survey had to do with integrations, overhead, and details regarding specific headaches.
For example, nearly two-thirds of developers claimed they had 3 or more service integrations, and a third said they used between 4 and 6. 9 developers reported they used 11 or more services.
Surprisingly, developers did not find that the maintenance for service integrations got worse year after year, which Trove had believed would be the case. This could be due to improvements over time like standardized and commiditized libraries, or possibly, Trove admitted, poor wording in their survey question.
As for the headaches? There were quite a few listed, including:
- Poor documentation
- Poor error handling
- Lack of example code
- Lack of test environments
- Lack of standardized libraries across languages
- APIs that change/break frequently (mostly Facebook)
- 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