• # Pas convaincu

    Posté par (site web personnel) . En réponse au journal HipHop For PHP : Facebook php-to-C++ translator. Évalué à 1.

    Aller, hop hop je me lance.

    Je ne suis pas convaincu pour plusieurs raisons.

    Actuellement, le goulot d'étranglement des performances ce n'est pas le PHP en lui même, mais tout ce qui tourne autour, notamment les entrées sorties et la BDD. De plus la plupart des fonctions PHP étant écrite en C derrière, PHP n'est pas si lent que cela (globalement le temps gagné se fera sur le temps de dispatch des instructions de la machine virtuelle, ce qui est proche d'être négligeable dans le cas d'une utilisation WEB standard où l'on fait principalement des appels de fonction de traitement de chaîne et de base de donnée).

    Donc je ne suis pas convaincu pour le gain en vitesse. D'autant plus que l'on parle d'un gain de performance sur la partie qui peut être facilement dupliquée, il suffit de créer un serveur clone du premier et de repartir la charge entre les deux et c'est bon (enfin presque ;)

    Maintenant ce genre de compilation de code risque de provoquer des incompatibilités et des problématiques de maintenance tordue. Je ne suis pas près à sacrifier la maintenabilité et la simplicité de développement pour un millième de seconde gagné à chaque requête.

    A mon avis il serait plus rentable de payer pour auditer le code à la recherche d'algorithmes mal écrits / requêtes mal faite plutôt que de payer quelqu'un pour s'assurer que ce bordel fonctionne correctement ;) A partir du moment ou l'on utilise un langage comme PHP c'est que l'on à comprit que la perte en performance ce fait en échange d'un gain énorme en maintenabilité, portabilité et facilité de développement. Quitte à revenir en arrière, autant faire du web en C.

    Sinon j'ai un exemple tout bête, il existe pour Python pyrex (ou cython) qui permet de compiler du code python en C. Le gain de performance est presque nul tant que l'on ne fournit pas des indications à pyrex sur le code (par exemple les types de données), mais à ce moment là ce n'est PLUS du python, c'est un autre langage au typage statique qui permet, du fait de son typage statique, des optimisations hardware intéressante.

    Conclusion, soit HipHop prend du PHP pur et en fait du C++ et je ne vois pas le gain que cela peut apporter, soit HipHop définit un nouveau langage basé sur PHP et (attention troll), je trouve cela inutile car il y a pleins d'autres langage qui répondent à ce besoin (langage de plus/moins haut niveau avec typage statique permettant des optimisations agressives) et si j'avais à faire cela je n'aurais pas pris php comme base de départ (bouh, moche ;)