Zeev Suraski, un développeur de PHP a proposé il y a quelques jours un langage frère au PHP. Baptisé P++, comme une incrémentation du PHP simple comme cela a été le cas avec le C et le C++, le nouveau langage sera un langage plus strict avec un bagage réduit et des fonctionnalités plus avancées et un langage fortement typé. P++ ne devrait pas être considéré comme un fork de PHP, car, selon lui, cela va ressembler un peu à ce qui a été fait avec strict_types dans PHP 7, mais seulement à une plus grande échelle.
Selon les contributeurs internes du langage, les raisons qui justifient cette initiative sont multiples, mais il en existe une qui est beaucoup plus importante. En effet, ces derniers ont expliqué qu’il existe deux grandes écoles de pensée dans le monde de PHP. La première aime à peu près le langage PHP dans sa forme actuelle, c’est-à-dire dynamique, rétrocompatible avec un accent mis sur la simplicité. L’autre préfère un langage plus strict, avec un bagage réduit et des fonctionnalités plus avancées ou plus ou moins complexes. Il n'y a pas de « bien » ou de « mal » à ça. Les deux écoles de pensée sont valables et ont un très grand nombre d'adeptes.
Seulement, selon l’équipe de développement de PHP, il est difficile de concevoir un langage qui s'adresse à la fois à ces deux foules en même temps, ce qui est une source constante de conflits au sein même des contributeurs internes du langage. D’un autre côté, cela peut également être dû au fait que le PHP est fortement critiqué sur sa forme non typée. Ainsi, selon certains, il n'est absolument pas adapté pour créer des applications plus robustes. Pour ces derniers, des applications se font en C++, en Delphi, à la limite en Java, mais absolument pas en langage de script. PHP est un langage de script orienté Web et n'a pas les outils pour faire autre chose.
À ce titre, ils ont expliqué que le PHP commence à avoir des outils pour créer des applications plus sûres (compilation classique, librairie GTK) et ses outils sont très pratiques quand on n'a pas le temps d'apprendre un autre langage. Cependant, le langage qui serait le plus adapté dans ces cas devrait avoir accès aux ressources et fonctions du système. Il doit également posséder un typage fort des variables, sans quoi à chaque opération, l’on est obligé de passer par une interprétation ou une retraduction d'où des pertes de performances inutiles. Ces besoins seront peut-être comblés à l’avenir avec la proposition de P++.
P++ n'est pas un fork de PHP. La base de code sera identique, elle serait mise à la fois ensemble et développée par les mêmes personnes. La grande majorité du code serait identique. L'équipe a informé que seuls les points de différence spécifiques à chacun des deux langages auront des implémentations différentes. Cela va ressembler un peu à ce qui a été fait avec la directive strict_types dans PHP 7, seulement à une plus grande échelle. Les fichiers binaires seront identiques. Ainsi, si vous installez PHP, vous auriez installé P++ et vice versa. Le même binaire exécutera vos applications PHP et P++ ou combinées PHP/P++.
Cela ne signifie pas que l’équipe va doubler ses efforts de travail, car la grande majorité du code sera partagée entre le mode PHP et le mode P++, à la fois en code source et à l'exécution. Les structures de données, les sous-systèmes de clés, les extensions, les interfaces de serveur Web, OPcache, et presque tout le reste seront le même code en cours d’exécution, que le fichier en cours d’exécution soit en PHP ou en P++. Les seuls coûts supplémentaires de développement seront les zones de différence spécifiques entre PHP et P++. Il sera également possible de faire chevaucher les deux langages.
Vous pourriez mélanger et assortir PHP et P++ dans la même application. Selon l’équipe de développement, cela peut sembler étrange au début.
Néanmoins, il pourrait y avoir à la longue des cas d'utilisation très pratiques pour cela. Pour ceux qui sont familiers avec le C et le C++, c’est un peu la même chose. À présent, notez que l’arrivée de P++ ne signifie pas que PHP n’évoluera plus ou si toutes ses fonctionnalités iront à P++. Cela veut juste dire que les deux langages évolueront séparément. Les nouvelles fonctionnalités plus strictes et liées au type vont probablement aller uniquement à P++, et ne seront disponibles que dans les fichiers P++.
La partie dynamique qui met l’accent sur la simplicité restera en PHP. Toutefois, des fonctionnalités non liées, telles que l'amélioration des performances du moteur (JIT, par exemple), les développements d'extensions ou de nouvelles fonctionnalités liées à l'async, seront disponibles pour PHP et P ++. D’après les explications fournies par l’équipe, cette approche présente de nombreux avantages. Premièrement, cela donne aux deux camps, une bonne solution à leurs aspirations.
En d’autres termes, ceux qui préfèrent la nature dynamique de PHP peuvent le conserver, tandis que ceux qui préfèrent un langage plus typé parviendront à l’obtenir sans être soumis à aucune limitation de PHP. L'alternative à cela est un jeu à somme nulle, où le gain d'un groupe est la perte de l'autre, et vice versa. Selon l’équipe, en plus d’être une bonne solution technologique qui va permettre d’apporter un effort minimal à l’ensemble de la communauté, cela pourrait également mettre fin aux sources de discorde qui ont existé au cours des dernières années parmi les développeurs internes du langage.
Enfin, l’équipe a annoncé que cette initiative présente un certain nombre de défis à relever. De plus, pour l’instant, elle ne dispose d’aucune proposition sur la façon dont elle va marquer un fichier en tant que fichier P++. Il s'agira probablement d'une sorte d'en-tête spécial en haut du fichier, mais rien n'est encore décidé. En outre, elle a annoncé qu’elle peut trouver des moyens pour marquer les espaces de noms en P++, afin que les frameworks n'aient pas à marquer explicitement chaque fichier individuel en tant que P++. Pour en savoir plus sur le sujet, vous pouvez consulter la FAQ mise en place par l’équipe sur le wiki du langage.
Dans la communauté, certains apprécient cette initiative de l’équipe de développement du langage, mais par contre, d’autres pensent que maintenir deux projets distincts en même temps ne serait pas une chose profitable. « Personnellement, j’aime une approche plus stricte. Je n'aime pas le fait que vous puissiez combiner PHP et P++. Cela ne fera qu'ouvrir la porte à des bases de code encore plus compliquées. Beaucoup d'entre nous veulent avancer avec le langage et cesser d'être retenus en permanence par les problèmes que pose la rétrocompatibilité du langage », a déclaré l’un d’eux.
« Vu que le PHP a atteint maintenant les 20 ans, je pense qu'il ne serait pas aberrant de proposer une version de PHP qui casserait la rétrocompatibilité pour cause de nouvelles fonctionnalités génialissimes. Bref, il faut préparer les 20 prochaines années et ce n’est pas en traînant les comportements vieux d'il y a 20 ans que ça va se faire », a ajouté un autre.
Source : Wiki PHP
Et vous ?
Quel est votre avis sur le sujet ?
Selon vous, le P++ est-il une bonne ou mauvaise initiative ? Pourquoi ?
Êtes-vous déjà satisfaits de PHP tel qu'il est ou souhaiteriez-vous un langage plus typé ?
Les développeurs de PHP devraient-ils renoncer à la rétrocompatibilité du langage pour proposer un langage plus compétitif selon vous ?
P++ pourra-t-il tenir les fruits de ses promesses ?
Voir aussi
PHP 8 va proposer un compilateur Just In Time qui devrait produire une amélioration des performances en vitesse
PHP 7.4 devrait être rendu disponible vers la fin de cette année. Voici un aperçu des nouveautés qui pourraient y figurer
PHP 7.3 est disponible en version stable : un aperçu des nouveautés du langage de programmation côté serveur
PHP 7.2 est disponible en version stable avec la bibliothèque de cryptographie Sodium et d'autres améliorations et nouvelles fonctionnalités
Un développeur de PHP propose un langage fortement typé, le P++,
Avec des fonctionnalités plus avancées
Un développeur de PHP propose un langage fortement typé, le P++,
Avec des fonctionnalités plus avancées
Le , par Bill Fassinou
Une erreur dans cette actualité ? Signalez-nous-la !