Future of RFacebook
Thursday, January 10th, 2008I’ve been maintaining RFacebook for the last 9 months or so, and recently I haven’t had the time to maintain it. Unfortunately, I don’t have any current projects that actually use the Facebook platform on a daily basis, so I have had to rely primarily on patches from the community (thank you!) and bug reports from other developers.
When I wrote the initial library, I was fairly new to Ruby and proper language idioms. Needless to say, this has led to some not-so-great designs that are difficult to fix while maintaining backward-compatibility. In particular, the direct access to the API via method_missing has turned out to be problematic for some people. Also, the so-called facepricot chaining (which gives quick access to XML parsing) is particularly poorly designed and I would like to get rid of it if possible.
Ideally, RFacebook 1.0 would do away with the cruft and simplify some of the design. As I considered certain aspects to redesign, I definitely re-evaluated Facebooker, a very solid looking Gem and plugin from Chad Fowler and some other experienced Ruby guys. Much of the improvements I would like to make to RFacebook are already present in Facebooker - API objects converted to Ruby objects, API methods are Ruby-ified, solid documentation, simplified Rails support, etc. Since RFacebook 1.0 would break a lot of applications (with the removal of facepricot and others), I am considering deferring to Facebooker for future Rails Facebook development. I am a big fan of not reinventing the wheel, and I feel that the Facebooker team has already achieved the improvements that RFacebook needs.
Through the process of writing and maintaining RFacebook, I’ve definitely learned quite a bit about Ruby, Rails, behavior-driven development, and the community around it all. Your comments, feedback, and encouragement helped make it a valuable experience. However, at this time I would really like to take on some new projects.
Regardless, I definitely do not want to leave existing RFacebook developers hanging. If you want to take over the RFacebook project, please let me know via the comments. I have also contacted the Facebooker developers to see if they are interested in a compatibility module (which I would write) for Facebooker to ease the transition from RFacebook to Facebooker. Please let me know your thoughts.