PHP plus: la proposition P ++ créerait un dialecte plus strict

Un nouveau dialecte de PHP, nommé P ++, pourrait être développé comme une variante plus stricte de son prédécesseur dynamique, avec des fonctionnalités plus avancées et moins de bagages.

La proposition, lancée dans la communauté PHP par le cofondateur de PHP Zeev Suraski, ferait en sorte que P ++, ou quel que soit son nom, coexiste avec PHP mais ne soit pas lié par la philosophie historique de PHP. P ++ ne serait pas un fork, mais il serait intrinsèquement plus strict et pourrait être plus audacieux avec la compatibilité descendante.

Les éléments désormais considérés comme des «bagages», tels que les balises courtes, pourraient être supprimés tandis que des fonctionnalités complexes, en particulier celles pour les langages strictement typés tels que les opérateurs stricts ou les variables typées, pourraient être ajoutées sans introduire la même complexité dans le dialecte PHP.

Comme PHP lui-même, P ++ serait principalement destiné au développement Web côté serveur. La version prévue de PHP 8 devrait déjà étendre PHP au-delà du développement Web, avec un moteur juste à temps et une interopérabilité avec les bibliothèques C / C ++.

La grande majorité du code en PHP et P ++ serait identique. La plupart du code serait partagé entre les nœuds PHP et P ++ à la fois à la source et à l'exécution. Mais ils auraient des implémentations différentes. Les binaires seront identiques.

Ce qui n'est pas encore clair, c'est comment un fichier serait marqué comme fichier P ++. Il aurait probablement un en-tête spécial en haut. Les constructeurs pourraient également trouver des moyens de marquer des espaces de noms entiers comme P ++, afin que les frameworks n'aient pas à marquer chaque fichier comme P ++.

Les structures de données, les interfaces de serveur Web, les sous-systèmes clés et presque tout le reste seront exactement le même code, que le fichier soit exécuté en PHP ou P ++. Pourtant, deux versions de certains morceaux de code devraient être maintenues. Et P ++ est susceptible d'avoir des vérifications supplémentaires par rapport à PHP. Les développeurs peuvent mélanger et associer PHP et P ++ dans la même application. Les deux dialectes peuvent être exécutés sur un seul serveur.

Si P ++ se produit, cela signifierait une évolution différente pour PHP. La rigueur et les fonctionnalités liées au type iront probablement dans P ++. Le biais pour la compatibilité descendante restera dans PHP. Des fonctionnalités indépendantes, telles que des améliorations de performances dans le moteur ou des développements d'extensions, seraient disponibles à la fois en P ++ et en PHP.

Zuraski souligne les options potentielles pour le langage P ++:

  • Rester avec un PHP dynamique, qui ne serait pas accepté par les partisans d'un langage plus strict.
  • Évolution vers un PHP plus strict, inacceptable pour les partisans d'un langage plus dynamique.
  • Bifurquer la base de code, une perte nette pour toutes les personnes impliquées.
  • Concevoir une solution pour répondre aux deux publics, ce que tente la proposition P ++.

Les préoccupations concernant la proposition P ++ incluent:

  • La conversion de code PHP en P ++ ne serait pas anodine. Cela dépendra de ce qui aboutira finalement à P ++.
  • Les outils PHP ne prendront pas en charge P ++. Mais il pourrait être plus simple pour les fournisseurs de prendre en charge P ++ plutôt que de prendre en charge des déclarations granulaires ou un nombre illimité d'éditions.
  • Rupture de la compatibilité PHP. Mais le faire via un nouveau dialecte plutôt que de casser PHP lui-même pourrait être plus acceptable.

P ++ serait différent du langage Hack de Facebook, qui a été construit sur PHP, en ce que:

  • Hack a été développé par une seule entreprise.
  • Hack et la machine virtuelle HHVM qui l'accompagne n'ont pas le grand véhicule de distribution de PHP.