Plusieurs modifications en cours du côté de la plateforme Facebook en ce début d’année 2008. Il faut croire que le géant du web social n’a pas pris de vacances du temps des fêtes et nous arrive avec une suite de nouveautés qui sont très clairement destinées à faire contrepoids à OpenSocial.
Ces changements sont tous destinés à donner plus de latitude aux développeurs dans le canevas Facebook afin d’optimiser et de maximiser la qualité des applications.
La plus grande innovation réside certainement dans la gestion effectuée par Facebook de ses pages. Afin de se construire, chaque page d’une application passait obligatoirement le supplice de faire trois aller-retours entre votre poste de travail, la plateforme Facebook (la couche de donnée, l’API) et le serveur d’applications (qui construit l’FBML) avant de finalement s’imprimer sur votre écran. Fonctionel, mais laborieux. Et avec l’arrivée d’OpenSocial qui en un seul aller-retour peut effectuer le travail et ne vous limite pas à du FBML sur un canevas très strict, la compétition devenait inégale.
Facebook à donc sabré un aller-retour (requête # 4 et 5 sur Fig. 1) en créant des requêtes FQL préchargeables. Le développeur n’a qu’a les spécifier dans son code et les ajouter programmatiquement comme propriétés de son application. Lorsque la plateforme émettra une requête vers le serveur d’application (requête # 2 sur Fig. 1), elle contiendra déjà le résultat des requêtes FQL de l’application et le FBML sera prêt à être entièrement généré par le serveur d’application qui retournera la page à Facebook, puis à l’usager.
Fig 1.
Fig 2.
Dans la même veine, il sera désormais possible d’inclure des fichier Javascript (compatible au standard FBJS) et des feuilles de styles dans vos pages d’applications. De cette manière, il sera possible de stocker des parties du code dans la mémoire cache du fureteur et ainsi optimiser le rendu des pages. Ceci peut paraître une bien mince optimisation, mais du point de vue où Facebook traite et vérifie et “nettoie” tout le code qui entre dans ses canvas, répéter cette opération à chaque rendu de page devenait très fastidieux. Et de permettre l’usage de librairies javascript aux développeurs leur permettera de coder plus proprement et de manière plus efficace, comme sur toute autre plateforme. Cependant, Facebook repassera sur chaque balise écrite par le développeur et réécrira les balises à son goût… et ce à chaque rendu de page… On accorde donc davantage de liberté aux développeurs, mais en conservant le contrôle entier sur la plateforme et son fonctionnement, au prix de ralentir quelquefois l’ensemble de ce dernier.
En définitive, cette refonte majeure va substantiellement accélérer le visionnement de vos pages d’applications sur Facebook et va faire en sorte que l’écart avec OpenSocial se réduira au niveau de l’optimisation. Toutefois, comme OpenSocial n’a pas de rendu FBML à gérer et n’impose pas de canevas avec toutes les notions de “nettoyage” (vu comme un carcan par plusieurs), OpenSocial jouit probablement d’un avantage naturel sur les cycles de processeurs.
Sur une note plus mineure, Facebook autorise maintenant les témoins (cookies) sur ses applications. Ils seront stockés sur le serveur de Facebook, seront reliés à votre application et demeureront donc actifs peu importe le fureteur ou l’ordinateur utilisé. Rien de bien innovateur ici, mais le fait de pouvoir réaliser cette avancée dans le contexte du canvas très strict de Facebook est désormais intéressant et suscite la question suivante. “Devrions-nous nous réjouir devant l’opportunité que nous offre Facebook de maintenant créer des témoins ou encore nous demander pourquoi quelque chose d’aussi primaire en web ne figurait pas déjà sur cette plateforme?”.
Encore une fois, la faille de Facebook est son désir de tout garder homogène sur une seule et unique plateforme, un seul canevas : facebook.com. Créer un témoin est une chose très simple en web, mais lorsque l’on nous fait transiter par un canevas sur une plateforme distante (Facebook) pour en créer un, cela peut devenir très fastidieux et causer de sérieux maux de têtes aux gens de Facebook.
Aussi, autre frustration des développeurs Facebook, l’utilisation du Javascript a été quelque peu amélioré. Il est désormais possible d’effectuer des requêtes asynchrone (ajax) sans avoir à contourner le canvas dis-t-on ouvertement sur le site de Facebook… Encore une fois, les apparences jouent contre Facebook et ils semblent colmater des brèches et réinventer la roue pour des choses déjà existantes et simples. Faire une requête ajax ne demanderait pas tant de travail aux gens de Facebook s’ils permettaient l’usage de librairies telles Prototype ou Scriptaculous.
OpenSocial en est toujours à son API 0,6 et n’est pas encore considéré stable pour passer des applications en production, mais Facebook semble déjà pallier à ses principales lacunes en vue de conserver sa croissance actuelle. 2008 s’annonce passionnante! Bonne année à tous!
Facebook Beta :
http://www.beta.facebook.com/
Sources :
http://developers.facebook.com/news.php?blog=1&story=62
http://wiki.developers.facebook.com/index.php/Category:Beta_Feature