PHP : une spécification formelle du langage de programmation voit le jour
Le projet supervisé par Facebook

Le , par Hinault Romaric, Responsable .NET
Plusieurs langages de programmation les plus populaires évoluent en fonction des spécifications qui ont été établies au préalable. Dans ce registre, on peut citer les langages de programmation comme Java, C++, JavaScript ou encore C#.

La spécification pour un langage de programmation est la source de référence pour sa syntaxe et son utilisation. Elle contient des informations détaillées sur tous les aspects du langage et définit un cadre pour son implémentation.

Le langage PHP, bien que jouissant d’une importante popularité dans le monde du développement Web depuis 1995, n’a jamais eu droit à une spécification officielle, se limitant à offrir aux utilisateurs du langage une vaste documentation.

De plus, à la suite de la création du moteur de script Zend Engine (qui était la référence pour avoir une idée sur le fonctionnement du langage), plusieurs alternatives avec des implémentations assez différentes ont vu le jour afin d’améliorer les performances du langage.

Il était donc devenu nécessaire de nos jours d’offrir une spécification formelle du langage de programmation, qui définira ce qui est attendu des moteurs de script. C’est ainsi qu’un groupe de développeurs a lancé un projet de spécification pour PHP, afin de mettre au point une définition complète de la sémantique et de la syntaxe de PHP.

Le groupe est dirigé par Facebook et on y retrouve Andi Gutmans, le PDG de Zend Technologies et créateur de Zend Engine, ainsi que le créateur de PHP Rasmus Lerndorf.

« La prochaine version de PHP – PHP 7 - est en cours de développement. Afin de garantir le respect complet des scripts PHP existants, il est important de savoir ce qui est attendu du moteur », a déclaré Sara Golemon de Facebook. « En outre, avec des implémentations alternatives comme HHVM, il est important de garder un minium de divergence pour faciliter la compréhension de ce à quoi devrait ressembler un moteur. »

Pour rappel, HHVM (HipHop Virtual Machine) est un projet développé par Facebook afin d’accélérer la vitesse de rendu des pages PHP. HHVM est un compilateur PHP Just In Time (JIT) qui offrirait, selon Facebook, des performances six fois supérieures à celles de Zend Engine. Avec les futures évolutions de PHP et la sortie imminente de PHP 5.6, Facebook a besoin d’avoir des informations détaillées sur tous les aspects du langage pour offrir une implémentation de HHVM qui sera cohérente avec ces évolutions.

Une première ébauche de la spécification est déjà disponible sur la plateforme d’hébergement des projets open source GitHub et à long terme, le document sera élaboré à côté de la mise en œuvre de PHP.

La spécification formelle de PHP

Et vous ?

Qu'en pensez-vous ? Était-il temps que PHP ait une spécification ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Haseo86 Haseo86 - Membre éclairé http://www.developpez.com
le 02/08/2014 à 15:54
Quelqu'un pour dire à Facebook de rester à sa place où on les laisse définir le monde comme ils l'entendent encore longtemps ?
Avatar de Uther Uther - Expert éminent http://www.developpez.com
le 02/08/2014 à 16:28
En même temps on peut difficilement leur reprocher de s'être attelé a ce qui aurait du être fait par les créateurs du langage depuis au moins PHP4, époque ou PHP a tenté de se professionnaliser. Il n'ont fait qu'aider à formaliser les spécifications d'un outil qui leur est absolument indispensable, visiblement en collaboration avec les créateurs du langage.

La vraie question serait plutôt, comment ça ce fait que ça n'ait pas été fait avant.
Avatar de arnolddumas arnolddumas - Rédacteur/Modérateur http://www.developpez.com
le 02/08/2014 à 17:48
Citation Envoyé par Haseo86  Voir le message
Quelqu'un pour dire à Facebook de rester à sa place où on les laisse définir le monde comme ils l'entendent encore longtemps ?

Je n'ai aucune afinité avec Facebook mais je vois mal comment on pourrait leur reprocher de mettre cela sur la table. Cela ne pourra que renforcer le langage, c'est tout benef' à la fois pour Facebook mais aussi pour la communauté PHP.
Avatar de miky55 miky55 - Membre averti http://www.developpez.com
le 03/08/2014 à 11:03
Je ne suis pas tellement d'accord avec les commentaires précédents: tant qu'il n'y avais pas de réelle autre implémentation que celle de zend, il n'y avait pas lieu à une spécification formelle, celle-ci étant de facto un standard. Maintenant que Facebook y met son grain de sel avec HHVM, ça prend tout son sens.
Avatar de Théocrite Théocrite - Membre éprouvé http://www.developpez.com
le 03/08/2014 à 11:21
Personnellement je trouve ça plutôt bien que Facebook investisse vraiment dans ces specifications, ils en ont besoin mais ne demandent pas juste à la communauté de les écrire, ils les font et les ouvrent, donc pas de reproche à leur faire.

Dans l'article, je ne sais pas si ça vient de la rédaction ou du manque de contexte, mais HHVM 6x plus rapide que Zend Engine c'est une fois que HHVM a passé sa periode de warmup, et sans utiliser opcache sur 5.5 en comparaison si je ne m'abuse. La comparaison serait plus intéressante avec phpng qu'avec le vieillissant Zend Engine.
Avatar de guence guence - Membre du Club http://www.developpez.com
le 03/08/2014 à 20:07
Annonce développement de PHP 7 puis la spécification, que de bonnes nouvelles pour un langage que j'aime bien. Je pense que Facebook apporte là un appuie pas négligeable. Good!
Avatar de Shuty Shuty - Membre éprouvé http://www.developpez.com
le 05/08/2014 à 11:44
Citation Envoyé par Uther  Voir le message
En même temps on peut difficilement leur reprocher de s'être attelé a ce qui aurait du être fait par les créateurs du langage depuis au moins PHP4, époque ou PHP a tenté de se professionnaliser. Il n'ont fait qu'aider à formaliser les spécifications d'un outil qui leur est absolument indispensable, visiblement en collaboration avec les créateurs du langage.

La vraie question serait plutôt, comment ça ce fait que ça n'ait pas été fait avant.

C'est vrai qu'avec un peu de recul, je trouve ça un peu abérant... Surtout que depuis 95, personne ne s'était penché sur le sujet...
Avatar de Nicam Nicam - Membre confirmé http://www.developpez.com
le 05/08/2014 à 17:53
Il était temps !!!

C'est une très bonne chose.
Avatar de esperanto esperanto - Membre averti http://www.developpez.com
le 09/08/2014 à 23:07
Citation Envoyé par miky55  Voir le message
Je ne suis pas tellement d'accord avec les commentaires précédents: tant qu'il n'y avais pas de réelle autre implémentation que celle de zend, il n'y avait pas lieu à une spécification formelle, celle-ci étant de facto un standard. Maintenant que Facebook y met son grain de sel avec HHVM, ça prend tout son sens.

Pas d'accord. C'est parce qu'il n'a pas de spécification que Perl 5 n'a jamais eu plus d'une seule implémentation (alors que Python et Ruby ont au moins une version en C, une pour la JVM et même une en C#) : il aurait été absolument impossible qu'elles soient 100% compatibles à défaut de tests permettant de le prouver.
Perl 6 a une spécification, du coup il a des implémentations en C#, Haskell, ... mais il est vrai qu'il avance lentement, probablement parce que cette spécification est arrivée bien tard. Espérons donc que celle de PhP aura des effets plus positifs.
Avatar de Tsilefy Tsilefy - Membre chevronné http://www.developpez.com
le 10/08/2014 à 0:32
Malgré toutes les bonnes nouvelles de ces dernières années, cette spécification est sans doute la meilleure chose qui soit arrivée à PHP depuis l'arrivée de PHP 5.

Il fallait disposer de moyens énormes comme Facebook avant pour faire du reverse engineering sur le langage en entier et faire une implémentation différente. Avec les specs, on aura plus de choix, et qui dit choix dit amélioration des performances.

Il est temps aussi que PHP sorte des jupes de Zend et coupe le cordon.
Offres d'emploi IT
Thémeur drupal H/F
alter way - Ile de France - Saint-Cloud (92210)
Développeur java/j2ee confirmé (H/F)
Décision RH - Bretagne - Vannes (56000)
Ingénieurs h/f
Sogeti - Bretagne - Rennes (35000)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil