HipHop : L’histoire d’un mal nécessaire

Le 3 février 2010 — par

Il y a quelques heures a eu lieu une conférence Facebook très attendue par la communauté de développeurs Web tels que votre serviteur. Facebook a annoncé un projet sur lequel 6 personnes travaillent en secret depuis deux ans. Cela s’appelle HipHop for PHP, et c’est un projet open-source visant à transformer du langage PHP en langage C++, afin de le compiler pour atteindre un niveau plus bas dans l’interprétation et accélérer le calcul de ses nombreuses pages dynamiques.

HipHop_logo_white.png

C’est un travail gigantesque qui a été accompli par cette équipe de Facebook. Même si dans l’absolu peu de gens en auront réellement besoin pour leurs sites PHP ; la plupart du temps l’exécution des scripts en eux-même est assez rapide depuis PHP 4 et son Zend Engine. Même pour WordPress, ce qui ralentit l’affichage relève en général des requêtes à la base de données ou du serveur Web (HipHop n’utilise pas Apache, Facebook l’utilisait auparavant), puisque très peu de sites peuvent se targuer d’avoir comme Facebook des pages qui sont uniques pour chaque utilisateur.

Un autre indicateur qui montre que le développeur PHP lambda n’utilisera jamais HipHop réside dans son incompréhension complète de l’utilité voire même de la définition d’HipHop en elle-même… Morceaux choisis, pour le fun :

« I think the HipHop compiler should be great for WordPress users. » — Patrick Musgrave

Le script WordPress en lui-même utilise beaucoup la fonction eval(), qui a été explicitement sacrifiée par HipHop. Impossible donc.

« il semblerait que Facebook se soit amusé à reécrire tout ou une bonne partie de PHP. […] un compilateur de PHP ne serait pas une idée si farfelue que ça… » — Korben.info

Deux billets associant « Facebook » avec le terme « compilateur PHP ». Cela n’a rien d’un compilateur PHP, il en existe déjà plusieurs depuis des années, le plus connu étant phc. C’est dommage qu’un blog qui se veut vulgarisateur emploie des termes erronés à longueur de journée.

« @Korben: hum, je me disais surtout que vu que Java est plus proche de C++ que Php, pourquoi il n’ont pas écrit Facebook en Java directement. Enfin je me trompe peut-être. » — Tux-planet

Tu te trompes effectivement. En réfléchissant une minute il paraît évident que Facebook ne peut se permettre de re-coder tout son site, d’autant qu’un bon développeur Java se trouve plus difficilement qu’un bon développeur PHP.

08_05_php_vikinger_elephpant.jpg
Pour ceux qui se posent la question : Oui j’en ai un chez moi <3

« mais si on code avec un framework genre cakePHP, est-ce que l’on va pouvoir quand même le compiler ? » — crevette d’@cier

Faux problème : Avant d’en arriver au stade d’avoir besoin de compiler du PHP transformé en C++, il faudrait déjà penser à s’affranchir de son framework qui ne peut que ralentir l’exécution de son site.

« There’s this distinction in coding between a scripted language and a compiled language. PHP is an example of a scripted language. The computer or browser reads the program like a script, from top to bottom, and executes it in that order: anything you declare at the bottom cannot be referenced at the top. » — Une employée de Facebook

Je ne sais pas où l’auteur a récupéré cette employée de Facebook, mais je parie qu’elle s’occupe de la cantine, de la salle Guitar Hero, ou alors du ménage ; en tout cas elle ne peut pas avoir un lien avec les développeurs pour déclarer que PHP est un langage one-pass. Qu’elle demande à ses collègues, ou qu’elle se taise !

« Cela me parait étonnant tout de meme, je vois mal des .exe tourné pour une site web, http://truk.com/hu.exe?var=prout ??? loool » — krg

J’ai gardé le meilleur pour la fin… :) Ça se passe de commentaire. A noter que deux lignes plus loin, krg nous dit qu’il est un hacker. Au moins il ne se fera pas bloquer chez Korben.

Pour en revenir au titre de cet article, les gens qui me connaissent un petit peu savent que je n’ai pas Facebook en particulière adoration, je pense même que plus ça va et plus ça se transforme en un Skyblog mondialisé. Mais tout comme Facebook, Skyblog participe activement à la communauté open-source. Si leurs projets ne sont pas mis en avant de la même manière médiatique, Frank Denis fournit un travail remarquable pour la communauté PHP et open-source depuis des années.

pure-ftpd.png

Evidemment, tout comme HipHop, dans l’absolu ça ne servira qu’à peu de gens, mais allez dire à un administrateur système que sans Skyblog, son serveur FTP n’existerait pas, et qu’il aurait sûrement plus de mal à faire du cache Web efficace, et il va vous rire au nez :) Et peut-être vous frapper. Donc ne le faites pas.

HipHop for PHP sera disponible sur GitHub dans les heures qui viennent.

S'abonner au flux RSS du blog
Recevoir les nouveaux articles par e-mail :