Justin du Coeur (jducoeur) wrote,
Justin du Coeur
jducoeur

Facebook is sharing its APIs. That's so very -- special...

The big news in the tech space today is that Facebook is opening up its APIs: other social-networking companies are going to be allowed to copy these same API calls. Everyone is making this sound like it's a good thing. That's because everyone hasn't written anything with the Facebook APIs.

The Facebook APIs are "special" in the sense of "special needs" -- that is, they are very much the hyperactive child running around and knocking things over. They are a fine example of what happens when you let a bunch of smart but *very* inexperienced young programmers take charge of such a project. Some aspects of this particular hell:
  • The APIs are, to say the least, whimsical. You get access to some data -- basically, whatever someone felt like giving you access to. Sometimes, that access is a little surprising: for instance, from a user's record, I can find out what groups they have been *invited* into, but not which ones they actually *belong* to. (For that, I have to fetch the group's record.)

  • The data model is sometimes entertainingly immature. For example, take the new "pages" concept. A "page" is essentially a Facebook profile for a commercial entity, such as a band or a store. (Not what you think of when you use the word "page", I suspect.) But they created a *single, flat data structure* for all commercial entities, rather than making it polymorphic. So you wind up with a gigantic record, that includes ridiculously unrelated fields like "hours of operation" and "publisher" right next to each other.

  • The APIs are *constantly* in flux. Calls are added and deprecated on a weekly basis. In the course of the Spark project (six weeks), we found that we had to make homebrew enhancements to the C# libraries, because the API they were calling by the end of the project had been significantly changed from how it had been when had downloaded them just a little earlier.
I predict a real comedy of errors over the next six months, as other companies try to use these APIs, which are a rapidly-moving target, and which are deeply wedded to Facebook's many idiosyncracies. The only way it stands any real chance of working *well* is if Facebook changes their API development style radically, and I'm not sure they know how to do that...
Tags: programming, technology
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 21 comments