Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par Hinault Romaric

21PARTAGES

8  0 
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 ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Uther
Expert éminent sénior https://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.
17  0 
Avatar de arnolddumas
Rédacteur/Modérateur https://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.
6  0 
Avatar de esperanto
Membre éprouvé https://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.
2  0 
Avatar de miky55
Membre averti https://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.
0  0 
Avatar de tdutrion
Membre éprouvé https://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.
0  0 
Avatar de guence
Membre du Club https://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!
0  0 
Avatar de Shuty
Membre éprouvé https://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...
0  0 
Avatar de Nicam
Membre confirmé https://www.developpez.com
Le 05/08/2014 à 17:53
Il était temps !!!

C'est une très bonne chose.
0  0 
Avatar de Tsilefy
Membre émérite https://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.
0  0 
Avatar de DedeBoard
Nouveau Candidat au Club https://www.developpez.com
Le 10/08/2014 à 9:05
Que vient faire Face de Book avec cette spécification, si ce n'est que par intérêt.
0  0