Developing on Facebook is Difficult


Changes
Facebook is constantly going through revisions and constantly dealing with new bugs that arise within their system. Developers back in the day had only one option for developing within Facebook. That was FBML which is a proprietary language specific to Facebook. In addition, Facebook also released FBJS into the wild which was a ultra trimmed down Javascript library for use in Facebook applications and application tabs.

EOL for certain code
In 2009 Facebook announced they would be deprecating FBML application tab support. They had already deprecated canvas applications in FBML a while prior. The interesting thing is that some FBML tags have been migrated to XFBML while others have not. Things such as fb:multi-friend-selector have not been completely ported to XFBML (unknown whether they ever will) and require the use of a clunky serverFbml tag.

Lack of documentation
Documentation on Facebook has been lacking and a point of emphasis for them currently. Functions are not documented and others are still buggy even though they are listed. The best resource for help on Facebook isn’t even their forum because it is dead, but rather Stack Overflow