PHP est un langage très utilisé pour le développement des sites web et des plateformes telles que Drupal s’en servent massivement. Pendant longtemps, les développeurs n’ont pas pu se décider sur ce qui devait être la prochaine version majeure. L’attente est désormais terminée : il n’y aura pas de version 6, mais bien un PHP 7.
Il fallait une nouvelle base plus moderne
Le langage de script PHP, pour Hypertext Preprocessor, a été créé pour permettre la génération de pages web dynamiques. Interprété et orienté objet, il est l’une des fondations des projets LAMP qui ont donné ce que l’on appelle aujourd’hui plus communément le Web 2.0 : des sites très dynamiques, que l’on peut pratiquement utiliser comme des applications classiques. Mais le PHP a vécu ces dernières années une évolution problématique qui a ralenti l’introduction des nouveautés.
Outre les soucis de performances qui ont exigé plusieurs solutions, notamment l’arrivée des moteurs Zend Engine qui effectuent une compilation du code PHP pour produire du bytecode, le langage avait besoin de se moderniser. C’est ici que l’on a commencé à retrouver une accumulation de problème, surtout à partir de 2005 quand il a été question d’introduire le support d’Unicode en passant par UTF-16.
La longue et difficile gestation de PHP 6
Malheureusement, ces travaux, ainsi que d’autres, ne se sont pas passés aussi simplement que prévus. Une partie des nouveautés impliquait des cassures dans la compatibilité et il fut décidé d’opérer un tri. Ainsi, on retrouvait d’un côté ce qui pouvait être mis en place dans les versions « d’entretien » de la branche principale 5 (5.1, 5.2, 5.3, etc.), et de l’autre tout ce qui pouvait rompre la compatibilité, nécessitant de nouvelles bases. Il était alors question de PHP 6, mais ce projet prit du retard. Par exemple, cette version 6.0 devait embarquer la gestion des espaces de nommage, mais cette dernière fut finalement implémentée dans PHP 5.3.
L’accumulation du retard et des problèmes a conduit en mars 2010 à l’abandon du projet PHP 6 : les morceaux rassemblés jusque-là furent alors intégrés dans le une version 5.4 qui ne comprenait pas, notamment, Unicode. Aujourd’hui, PHP 5.6 est sur le point de sortir, mais qu’est-il advenu du projet de version majeure accompagnée de nouvelle bases ?
Il faudra désormais l'appeler PHP 7
Le projet existe toujours bel et bien, mais il ne se nomme plus PHP 6. Par un vote à 58 voix pour et 24 contre, les développeurs lui ont donné un nouveau visage : PHP 7. Sur la page du vote, on trouve de nombreuses explications, mais certains sont plus marquants que d’autres. L’équipe souhaitait surtout repartir d’un nouveau pied, surtout vis-à-vis d’une version dont le nom est connu depuis des années mais n’est jamais sortie. En outre, le projet d’aujourd’hui est différent de ce qu’il était, et il y avait donc un risque de confusion.
Mais plus important que le reste, le chiffre « 6 » transmet selon les tenants de la version 7 une idée d’échec : « La version 6 est en général associée à l’échec dans le monde des langages dynamiques. PHP 6 a été un échec ; Perl 6 a été un échec. Il est en fait associé à l’échec, même en dehors du monde des langages dynamiques : MySQL 6 existait, mais n’a jamais été publié ». Il y a donc un problème de perception sur le chiffre, tout comme il y en a un, pour l’équipe, avec le nom « Vista », lui aussi associé à l’échec.
Quant au fait de sauter une version, la majorité de l’équipe ne voit finalement pas le problème. Symantec saute les versions 13, Netscape Communicator était passé directement de la version 4 à la 6 et MariaDB est passé d’un seul coup à la version 10.0. Et pourtant, il devrait quand même y avoir de la confusion, car le projet PHP 6 a tellement fait parler de lui qu’il existe en fait des livres qui traitent du sujet depuis des années. Mais après tout, Georges Lucas a débuté sa trilogie Star Wars avec l’épisode IV, ce qui n’a entravé en rien son succès.
Mais concrètement, quels sont les projets en cours pour PHP 7, puisqu’il faut maintenant l’appeler comme ça ? Tout d’abord la gestion de l’Unicode pour couper court aux opérations de conversions dans les caractères. Les développeurs prévoient également un grand nettoyage du code et des optimisations qui seront probablement sources d’incompatibilités avec les versions actuelles. Un nouveau système de cache devrait également être de la partie, ainsi que de nombreux changements pour les extensions.
En clair, cela signifie que la version 5.6 de PHP, dont on peut télécharger la Release Candidate 3 depuis hier, sera la dernière mouture de la branche 5. Une fois disponible, les yeux se tourneront complètement vers PHP 7.