IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Facebook dévoile sa ré-écriture de PHP, HipHop traduit PHP en C++ puis le compile avec g++


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 519
    Par défaut
    Ce genre de chose est loin d'être nouveau, Roadsend PHP propose depuis bien longtemps un compilateur PHP natif...

  2. #2
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    HipHop confirme ce que je disais dans mon premier post dans cette thread, à savoir que C++ est en train d'opérer un retour (ou une simple arrivée, en fait) dans le monde des langages pour applications web. Personnellement, je trouve que c'est tout naturel et m'étonne que cette prise de conscience ne soit pas intervenue plutôt. A la base, C++ est conçu pour supporter des charges importantes tout en optimisant la mémoire. Les gros sites web actuels n'ont rien à envier aux larges appli desktop. Bref, c'est une évolution naturelle en l'absence de technologies miracles et qui fassent consensus dans un style JIT (génération de code machine Just In Time). Oui bien sûr, il y a java et .NET.

    A ce propos, les info (les bruits de couloir, les rumeurs?) concernant ce que facebook nous préparait allaient plutôt dans le sens d'une solution basée sur du JIT, justement.

    Ce que facebook nous propose est différent. hiphop est avant tout un "transformeur de code" (et dans un second temps un runtime 100% détaché du runtime de php). Ca transforme du code php en code C++. Ensuite, ce code C++ est compilé de manière traditionnelle pour créer un executable.
    Actuellement, 2 types d'executables sont possibles:
    - un "tout en un" qui fait office de server web en plus du travail spécifique implementé initialement en php. Il s'agit d'un process multithread.
    - un simple programme en ligne de commande

    A terme, facebook veut proposer une solution spécifiquement adaptée à apache, ainsi que du fastcgi.

    Quelque part, on ne peut pas faire mieux que ce que facebook propose en terme de performances et de ressources utilisées: laisser un compilo C++ faire le travail final à partir d'un code C++ optimisé (ça c'est ce qu'ils prétendent, mais bon, en théorie, ça se tient). Néanmoins, cela implique quelques restrictions, et non des moindre.
    Tout d'abord, hiphop ne supporte qu'environ 90% de php 5.2 (core et extensions standard). Supporter php 5.3 est dans la roadmap (heureusement!). De plus, un certain nombre de features vraiment dynamiques de php ne sont et ne seront pas implémentées. Parmis lesquelles:
    - eval()
    - create_function()
    - preg_replace() avec /e
    - bidouiller avec l'ordre de déclarations des symboles (functions, classes..).

    Cependant, il faut savoir que facebook tourne à 90% avec hiphop à l'heure actuelle. Il s'agit donc d'un projet déjà en production.. et sur pas n'importe quel site!

    D'un point de vue utilisateur, pour bénéficier de hiphop, il faudra avoir accès à un compilo C++ sur le server (g++). Pour les shared hosts, ça risque d'être limité.
    Il ne sera pas possible d'utiliser des extensions php non standard, à moins que celles-ci aient été réécrites spécifiquement pour hiphop (ce que facebook semble avoir fait pour certaines).
    Le moindre changement dans le code d'un script php entrainera une nouvelle phase de transformation puis de compilation. Pour un "scripteur", ça doit être quelques chose d'assez frustrant (facebook propose aussi HPHPi, un interpreter, mais destiné au dev/debugging).

    Pour finir, le plus gros problème à mon avis, est le fait que hiphop fournisse son propre runtime: un changement ou une addition dans le php traditionnel (celui de Zend) ne sera pas automatiquement répercuté dans hiphop. Il faudra que quelqu'un fasse ce réajustement. A terme il pourrait y avoir un décalage entre ces deux implémentations de php. Il y aura le "vrai" php de Zend d'un coté et le php qui marchera avec hiphop de l'autre (et c'est déjà le cas puisque certaines features dynamiques ne sont pas supportées par hiphop).

  3. #3
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par metagoto Voir le message
    HipHop confirme ce que je disais dans mon premier post dans cette thread, à savoir que C++ est en train d'opérer un retour (ou une simple arrivée, en fait) dans le monde des langages pour applications web.
    Oui c'est la solution pour les performances,Pourquoi ne pas faire le pas, personnellement je ne connais que WT,pour faire du C++ en Web !

    Connaissez vous d'autres possibilités ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/05/2011, 12h54
  2. Réponses: 5
    Dernier message: 08/04/2011, 15h28
  3. Réponses: 0
    Dernier message: 08/04/2011, 12h18
  4. Réponses: 0
    Dernier message: 02/02/2011, 13h06
  5. Réponses: 18
    Dernier message: 03/02/2010, 06h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo