The Facebook API: A Case Study in Not Caring About Developers
sethcall.com
sethcall.com
For now it doesn't seem to really be harming FB. They enjoy extreme growth and developers are pulled to their platform because of their enormous gravity. Over time, however, it is really not sustainable. If they want to be a platform they should start acting like a platform and that means making sure their APIs are documented properly and developers have a way to seek out information they need. Microsoft, whether you like them or not, does a great job of this.
I don't think a startup would enjoy special access to FB technology just by being related to YC
We’ll provide product, technical and design resources to support new Y Combinator companies interested in working with us to build deeply social products, whether a website or an application on Facebook.com. These companies will have priority access to our technologies and programs such as Facebook Credits, Instant Personalization and upcoming beta features.
When I browsed the API on my own it was an utter disaster on par with the article's description.
Even after last week's developer meeting and subsequent rollout of changes, my request for documentation was met with - not paraphrasing - "We'll get back to you."
The reason is very closely tied to Facebook's engineering success: there is no top-down control over anything. All the engineers are encouraged to break things and to keep the pace of progress rapid. For developers on their API this is a nightmare scenario. However your claim that this is not sustainable may just be wishful thinking. Facebook craps all over its developers, but it's not clear at all that that price is too high to pay for the continued agility that Facebook exhibits. It's hard to argue with that kind of market dominance. Plus, Facebook is so nimble that if API stability does become a problem they can easily switch gears and focus on it.
In other words, I wouldn't hold your breath for any change at Facebook.
An engineering culture that breaks APIs is bullshit. Taking 48+ hours to fix show-stopper platform errors is bullshit. Their 'innovative approach' is not working and the proof is in the pudding. They have not reached 500 million users solely on the success of this engineering approach, and I would vehemently argue they have reached 500 million users in spite of it.
The price will become too high to pay, if the future they envision involves third party developers at all. 500 million users is a hell of a lot of momentum, but it won't carry them as far as they want to go.
Saying that you think they have reached 500 million users inspite of their engineering approach is far from a common-sense argument. It's clear that Facebook ran technical circles around MySpace. And it's clear that they have launched new features at a breakneck pace throughout their history that have fueled growth at every turn.
I personally will avoid working with Facebook as much as I can, but will that hurt them? Not in the current business climate.
Other favorites:
* They accidentally flipped the switch to a new authentication mechanism overnight to a beta with no documentation. It took them over 48 hours to realize and fix this mistake.
* At one point I was asking for JSON and intermittently getting back XML instead. Apparently JSON parsers can't parse XML. Who knew?
The other irritating thing is when you eventually discover that there's a bug, the best response you see is "Hi, sorry this is a known issue" with no resolution date or even rough idea of whether it'll be fixed in the next year or not.
I had three more sections planned out, but said the heck with it, they've already taken so much of my time.
You are totally right, though.
Recently I've found another problem - public user data being visible to users, such as birthday, hometown and current location is not available through te Graph API as well as REST old one. Of course they're documented as available http://developers.facebook.com/docs/reference/api/user and accessible by visitors, but not by API. I've found this case in lots of posts on the forums and bugtrack, f.ex. http://bugs.developers.facebook.net/show_bug.cgi?id=8376 marks this bug as fixed, yet there's a new one http://bugs.developers.facebook.net/show_bug.cgi?id=12090 with the same case.
While I need it mostly for side projects, I pity the ones whose FB app is core for their business, f.ex. this comment:
Do we have a fix for this solution? In spite of so many people facing the problem why is this issue not addressed till now?
Can someone answer these questions? Our application is totally based on the way Facebook gives the location info and most of the time we get the location info as NULL.
http://www.sethcall.com/blog/2010/09/30/facebook-api-does-no...
I am really quite pleased he took the time to address the post. Let's hope he can succeed.
...and for the love of god don't use facebook for user auth. The API will mysteriously go down without warning for hours at a time.
This is one of the reasons I left my last job. Facebook was crucial to the business strategy, but it's miserable to work with.
At least twitter's api is easy to use.
Ryan Waggoner wrote a similar post like this a few days back (http://news.ycombinator.com/item?id=1731427), so this is clearly bugging a lot of people. Please collaborate your efforts if possible.
http://area51.stackexchange.com/proposals/7285/facebook-deve...
Personally, I think the StackOverflow engine would be a great way to build up a crowdsourced wiki of FBAPI knowledge.
I remember constant problems with authentication and sharing APIs. How do you not have tests for those?
Facebook is still way too cowboy.
Judging by the comments left by newly hired FB staff on http://news.ycombinator.com/item?id=1731427 and on this post, maybe that attitude is finally turning around. But I personally really feel burned by my experience working with the facebook platform. Their deficiencies cost me a lot of money, and caused a lot of stress due to blame and doubt applied upon my team by skeptical clients. When it comes to Facebook, I'm going to have trust issues for a long time...
The biggest way is they don't want to make it easy for you to get your data out of Facebook. Any robust, well-documented API would have to enable that.
In some ways this is even a good thing. A small number of compromised accounts can give access to most of the data on Facebook.