Wednesday, November 3, 2010


Ok so this already has rant written all over it right? And if you've worked with me over the past few days, you probably know most of what I'm about to say. But I need to air it out more and maybe get some other opinions on the issue.

For starters lets talk about facebook's "non-event" today. So you are planning to integrate more tightly with mobile devices? Thanks for the incite you progressive minded "genius". I would like to announce that I plan to eat food over the coming months. I do agree though that the iPad is not a mobile platform and I loved Zuck's apparent delivery of the line, "It's a computer. Sorry". Does someone have a favorite mobile OS? Maybe Zuck and I could get along after all ha!

I got most of my information from Engadget's coverage and general google searches. For a real analysis of the event I'd recommend you do the same because I definitely won't do it justice.

Overall its a reasonable roadmap for facebook that was laid out today. In my opinion there really wasn't anything worthy of an event announced today. Though this excellent write up says otherwise. In short, iPhone gets updated app with Groups, Deals, and enhanced Places. Android get additions as well. Deals sounds a little too "market-y" for my liking. And maybe its just me, but I really am not comfortable with telling the world where I am all the time? It's all a little big brother-like to me.

Now you'll see that throughout the event (and the above blog) how much they plug how much the developers "love" it and how its so "easy" to use. I'd also like to point out that they had an Android and an iPhone crash during the demo. And we reach the ranting:

Now I don't claim to be a programming god (still just working on guru status) but I have picked up a few programming languages, APIs, frameworks, CMSs, etc, over the past few years. And of course there were bumps in the road, but overall the experience was progressive and mostly painless. I have been using (attempting to) the facebook apis for the past two weeks and its been painful.

I want to be the first to admit that I am not the most adept facebook user in the world (where the hell is logout you sneaky bastards!) but the whole concept of pages, tabs, and applications makes my eyes glaze over. Yes, there are times when the distinction is clear as day. But other times applications are on tabs on a page. And other times an application isn't a page at all ( domain). Oh and applications actually have pages of their own, but the page doesn't actually have the application on it. Or wait are those pages or profiles, because you know they are different.

This instantly puts me at a disadvantage, and I would normally take the blame for this, but give a read through their documentation sometime. Essentially every api page starts with: "Use this new api rather than this old api. Oh, unless you're on a page then you have to use the old api. But keep in mind that we're retiring this api in the next month." Holy crap! Think I'm exagerating? Directly from their documentation:
Note: We do not recommend FBML for new developers. If you aren't already using FBML, you should instead implement your application within an iframe, using the JavaScript SDK and social plugins for client-side integration with Facebook services. The one exception: if you absolutely must create an application that appears as a tab on a Facebook Page, you will need to use FBML for now; tabs do not currently support iframes directly. We will be transitioning tabs to iframes later this year -- please see the developer roadmap for more details.
Now can I start to put some of the blame on them instead of myself? Perhaps the most telling thing is that in 50% of the examples they give you, a direct copy and paste will not run. Ok, so the documentation sucks, not like their the first ones to suffer from that. This admission gives me hope, and there have been several updates on the facebook developer blog as well.

I won't be all negative though. Their PHP SDK worked pretty well, though I had a bit of a hiccup with hosting using PHP 5.1 and the SDK requiring JSON (I put most of the blame on hosting for that). And it was a bit tough to get a work around in CodeIgniter, again not really a facebook issue. In their defense it seems they are in transition right now and will perhaps come out much cleaner in 2011, but until then I'm not a big fan.

The main culprit for all of this is the god forsaken FBML and FBJS. These are essentially languages that take their normal counter parts (HTML and Javascript), strip most of their usefulness, then add a bunch of custom tags that are completely uncustomizable and have no significant tutorials. In addition to this the whole "view source" trick to get ideas doesn't work because of their bloated markup.

There, I'm done. I'm sure in a few days I will have that "a ha!" moment and zip through it (fingers crossed) but until then, wtf facebook?

UPDATE: I was finally able to accomplish my task, AJAX and all. I wasn't able to bind events the way I would have liked, but I guess that cake wasn't for eating. But a HUGE thanks goes out to these guys and their blog article. All the examples worked and he responded to his comments, what a novel idea!! I will follow up with more details for any who are interested.

No comments:

Post a Comment