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.
Commentaires (228)
Si PHP 7 a du succès, ils feront la suite (PHP 8) et la préquelle (PHP 6).
Tout d’abord la gestion de l’Unicode
Utilisant un langage qui gère l’Unicode en version stable depuis 5 ans (Ruby), je rigole doucement. Bon courage aux dev PHP.
Mais si le PHP c’est un langage de programmation libre, qui décide de le mettre à jour ? Et qui travaille dessus pour le mettre à jour ? Google & co?
quels sont les projets en cours pour PHP 7
http://whydoesitsuck.com/why-does-php-suck/
Une bonne piste pour les dévs
Le pb n’est pas tant le numéro de version que de casser les rétrocompatibilités si je comprends bien.
Ca peut faire se planter php7 pareil pour les mêmes raisons que perl6
On goûte aussi à l’unicode dans Python 3 depuis des années, et c’est très bon.
" />
C’est une bonne nouvelle, ça permettra de faire un grand nettoyage et d’aller de l’avant, quitte à casser la comptabilité ascendante sur certains éléments.
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.
« On n’est pas arrivé à gérer l’Unicode donc pas de PHP 6. On passe direct à PHP 7 qui gèrera l’Unicode ».
S’ils pouvaient en profiter pour faire du nettoyage dans le nommage des fonctions et l’ordre des attributs…
array_filter(\(input, \)callback) / array_map(\(callback, \)input)
strpos(\(haystack, \)needle) / array_search(\(needle, \)haystack)
Et la liste est très longue…
Pour une V6 qui fonctionne, restez sur Next INpact
On demande aussi à voir, pour l’instant c’est du blabla mais rien de concrêt !
(vous l’avez cherché celle-là
Très franchement, la version a peu d’intérêt pour moi, ils pourraient appeler ça PHP 42 ça ne changerai pas ma vie.
Personnellement, ayant été obligé de coder en fortran77 pendant un moment, je trouve le php très agréable à utiliser
" />
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.
C’est JavaScript et les requêtes AJAX qui ont permis ça surtout…
Pourquoi des actus sur des langages tournent forcément en « le mien est meilleur que le tien » ?
" />
Si vous voulez comparer vos quéquettes, allez sur jeuxvideo.com, ils ont des topics dédiés à ces débats passionnants
En fait tout le monde goûte à Unicode depuis vingt ans. Sauf PHP.
voilà, tu as le support de l’unicode.
Pour une V6 qui fonctionne, restez sur Next INpact
J’ai toujours pas compris le rapport avec la freebox.
avec le nom « Vista », lui aussi associé à l’échec.
ah oui bon, la j’avoue ….
En plus du numero de version, il vont apporter un nouveau compilateur JIT (au passage plus performant que le HHVM de facebook), et du type hinting scalaire (la feature est prête et aurait pu/pourrait etre intégré a php 5.7) qui devrait aider les devs utilisants ce language.
Internet Explorer 6
" />
Ok, donc non seulement ils savent pas faire un langage potable, mais en plus ils savent pas compter…
" />
Très bonne nouvelle, PHP est juste le meilleur langage web, longue vie à lui !
Vivement la version 7 et le nouveau moteur ultra dopé !
La contrainte n’est pas liée au langage, mais au non-choix chez les hébergeurs. Certains peuvent dire qu’il existe du Ruby ou autre chez tel ou tel hébergeur.
Quand un site d’une petite structure démarre sur un hébergeur gratuit, c’est PHP+MySQL… Pour que les responsables de la structure finissent par considérer qu’un vrai nom de domaine et un vrai hébergeur, c’est mieux. Je sais.
Et puis, pour ajouter du troll au troll : je préfère maintenir du PHP que du JS.
Personne ne pourra me faire avaler qu’un langage de programmation qui ne connait que la table indexée multi-dimensionnelle comme structure de donnée est un bon langage.
IE6 a supplanté Netscape parce que Microsoft a eu la bonne idée de le livrer par défaut avec chaque version de Windows. Pas con le Bill !
Comment je vais faire pour me moquer de PHP maintenant ?
Ou a chaque fois qu’on me demande quand une feature arrivait, je répondais “en même temps que PHP6”.
Qui sait, peut-être que ça marchera aussi avec PHP7 ?
Quand on vous dit que 6stemd est un échec
" />
Personne ne pourra me faire avaler qu’un langage de programmation qui ne connait que la table indexée multi-dimensionnelle comme structure de donnée est un bon langage.
Sauf que… PHP ne connait pas que la table indexée…
Le tas binaire, la lsite chaînée, le tableau à taille fixe… tout y est.
http://francoisdambrine.me/?p=109
https://php.net/manual/fr/spl.datastructures.php
php c’est trop hasbeen, l’avenir c’est flash
moi croise les doigts pour pouvoir forcer le typage des scalaires !
dans ma boite, on est en train de se mettre à symfony 2…
Je ne suis pas convaincu du bien fondé de ce choix car nos applications sont surtout basées sur de l’import de fichier texte avec environ 40 000 données, puis de l’affichage (avec filtres, etc…) , et des stats…
Le serveur apache/mysql rame à n’en plus finir lors des imports, car l’import se fait avec vérification des données pour éviter doublons, etc….
Quelle autre langage que php pourrait être utilisé à votre avis ?
Je plussoie pour l’utilisation du Perl pour les traitements de flux.
Et en parlant de Perl :
PHP 6 a été un échec ; Perl 6 a été un échec.
Ça c’est du troll bien poilu, les deux ont eu des problèmes faisant qu’aucun des deux n’est actuellement disponible en version finale malgré une très longue gestation, mais pas pour les mêmes raisons : pour PHP 6 personne n’arrivait à se mettre d’accord, et pour Perl6 c’est juste que les différentes implémentations mettent un temps incroyable à sortir et que certaines meurent même en cours de route (mais le bout du tunnel se rapproche).
Non, quand Perl6 sortira, ça sera bien. J’y crois.
Il faudra juste beaucoup de pédagogie pour expliquer aux gens sans les faire fuir que l’impératif et les héritages du shell cohabitent maintenant avec de l’objet (ouais bon y’a Moose en Perl5, mais déjà inspiré de l’implémentation Perl6) et du fonctionnel, et qui pourra aussi être mélangé à du code d’autres langages (Ruby/Python/JS/…) grâce aux possibilités de la machine virtuelle.
Je suis certain qu’on pourra repousser encore plus loin les limites de l’illisible avec tout ça, et ainsi passer pour de vrais magiciens auprès des non-initiés, et accessoirement pondre du code qu’on ne saura plus comprendre 2 heures plus tard.
Le Web 2.0 n’a strictement, mais alors strictement rien a voir avec un quelconque langage. Le Web 1.0, c’est l’époque ou le webmaster était le développeur et le créateur de contenu, le Web 1.5 c’est lorsqu’il y a eu une séparation entre développeur et gestionnaire de contenu, le Web 2.0 c’est le web “participatif” ou les utilisateurs participent a la création de contenu (via un module de commentaire par exemple ou comme sur Wikipedia)
" />)
Pour ce qui est du débat “quel est le meilleur langage” on s’en fout un peu, chaque langage a ses avantages et ses inconvénients suivant la tache a effectué. Comme ça a été dit certains confondent en plus les langages et les framework…
Je fais aussi de l’admin serveur, c’est clair qu’il n’y a rien de plus simple que le PHP a mettre en ligne (mise a part le HTML/CSS hein mais bon
Au final ce qui compte c’est surtout le développeur… et c’est vrai que par la facilité d’apprentissage du PHP il y a beaucoup de débutant ou sinon de “pseudo” bon dév.
et des plateformes telles que Drupal s’en servent massivement
Pourquoi prendre Drupal comme exemple alors qu’en terme de CMS, Wordpress est beaucoup plus populaire ?
MS Office aussi à sauté la V13. Microsoft est passé de la version 12 (2007) à la version 14 (2010)
" />
" />
Ces superstitions à la con
Pour ceux qui s’intéressent à ce qui se passe un peu à l’avenir avec PHP, il y a ce blog qui fait un point tout le mois en français et en anglais sur ce qu’il se passe sur la mainling-list de PHP :http://blog.pascal-martin.fr/
Merci pour les réponses
" />
Oui bosser avec les derniers outils + les dernières versions de PHP et un bon framework ça marche très bien et on peut faire plein de choses.
Microsoft devrait s’en inspirer en sortant seulement les bons windows sur 2. :)
A quand la version 6.0 de wordpress ?
Mon petit grain de sel :
Si vous voulez des performances extra ordinaires pour des applications (ou des sites) web, en aucun cas un langage dont l’exécution se base sur une VM ne peut être efficace.
D’où : Java, PHP ou C# exit !
Seul un serveur web capable d’utiliser un langage compilé donnera le meilleur de votre hardware (quel qu’il soit).
Et pour cela, je ne vois qu’un seul outil répondant à ces critères : G-WAN !
Ce serveur d’application web supporte pas moins de 14 ou 15 langages de programmation différents dont le C ANSI 99 qui est l’outil qui donne les meilleurs résultats.
Pour preuve, une petite application de calcul de remboursement de crédit livrée avec G-WAN et écrite en C, en C#, en Java et en PHP.
Les amateurs de C++, Go, JavaScript server side (Mono), Lua, Python, Perl, Ruby et Scala sont les bienvenus pour porter cet exemple dans leur langage préféré et comparer les temps d’exécution.
Pour essayer ce serveur web (que j’ai découvert et que j’utilise depuis bientôt 4 ans), utilisez le script d’installation suivant que j’ai écrit :http://www.as2.com/linux/tools/G-WAN_full-install.tar.bz2
Décompressez l’archive : tar -xjf G-WAN-full-install.tar.bz2
Lancez le script d’installation : sudo ./G-WAN_full-install
Vous pourrez alors choisir d’installer (ou non) chacun des différents langages supportés par ce serveur web au performances hors du commun.
Seul petit bémol pour l’instant (mais qui sera modifié prochainement) : la pile PHP utilisée est php5-cli, Zend étant incapable ou ne voulant pas fournir une pile PHP-fpm thread safe malgré des demandes sans cesse répétées par les développeurs de G-WAN depuis 4 ans.
La prochaine version de G-WAN supportera aussi PH7, un compilateur PHP.
Et aussi très certainement QB64, le compilateur BASIC de Galleon qui transforme du QB4.5 en C++ et le compile ensuite (QB64 fonctionne sous Linux, OS/X et Windows).
Essayez donc G-WAN et oubliez rapidement les dinosaures que sont les Apache2, Cherokee, Lighttpd et même Nginx.
PS: G-WAN est un freeware gratuit qu’elle qu’en soit l’utilisation (privée et/ou commerciale) et le site de son éditeur Suisse est :http://www.gwan.ch/download
C’est facile d’utiliser du cache et de clamer de belles performances :http://www.olivierdoucet.info/blog/2013/01/12/tests-approfondis-de-g-wan/
Sinon il y a HHVM conçu par facebook au départ :http://hhvm.com/
et sinon c’était pas bien coldfusion?
" />
Gnustep n’est pas un langage
" /> On peut faire de l’objective-c avec ce truc ?
En plus c’est proprio ^^ .
Ok donc le mec nous explique que le php/c# c’est pour les faux developpeur, et ce, pour promouvoir une techno proprio tres peu repandu qui est maintenue par son cousin…?
" />
Si github ou soundcloud, ou un grand nom utilisait g-wan cela aurait plus de poids
Oui, mais non.
Parce que en fait les grands noms ont besoin d’un truc qui implémente totalement HTTP, auquel ils peuvent facilement plugger un module SSL, un truc de logging, un truc de statistique, un truc de load balancing… Et aussi un truc où les gens ont les compétences.
Or une techno peu utilisé de base ne sera pas choisie par “les grands” car il y aura trop peu de personnes capable de l’utiliser, trop peu de personnalisation, trop peu d’interraction avec les applicatifs internes…
Quelques milliers de personnes, c’est très peu. A ce jeu là atoum a eu le même problème pendant longtemps. Pourtant à peine deux mois après sa publication sur github M6Web l’utilisait et le criait sur tout les toits.
Aller, juste pour m’éduquer (et me faire rire), citez moi SVP un seul autre serveur web qui permette de développer des sites et/ou des applications web en C ANSI, C++, C#, Gnustep, Go, Java, Javascript (NodeJS), Lua, Perl, Python, PHP (cli), Ruby et Scala ?
J’attends !
nginx. IIS. Pour ceux que j’utilise.
Ce n’est pas parce que tu ne me connais pas que c’est un inconnu et/ou que tout le monde s’en fout.
nginx et apache jouent dans les ordres de grandeurs au delà du million. Quelques milliers, c’est de la niche ultra spécialisée et ultra peu connue. Autrement dit, dans les applis généralistes, ton serveur est inconnu.
Ce G-Wan est peut être intéressant mais on dirait le discours d’une société vendant son produit qui permet de “développer 10 fois plus vite” vous voyez surement de quoi je parle
" /> Vous assenez des arguments d’autorité qui desservent votre discours .
Ca me semble intéressant la gestion du Go par exemple. Gère t-il l’objective-C?
C’est clair que le site de G-WAN n’inspire pas confiance.
“With 1GHz in 2000 and 3GHz in 2002 10GHz CPUs were expected in 2005”
Or on est en 2014 ! Quand on lit ça on pense que tout est abandonné depuis 10 ans.
Seul des plans de support techniques optionnels sont payants…
est en contradiction avec
Il n’y a pas de commerciaux chez Trustleap et G-WAN n’est donc pas commercialisé !
Que les choses soient claires : personne -et surtout pas les pures libristes- ne critiquera le fait qu’une entreprise vende (parfois super cher) un support pour telle ou telle solition logicielle. Mais dès lors, elle commercialise cette offre logicielle.
Certes la license de ton logiciel n’est pas payante, mais le logiciel en lui même fait partie d’une offre commerciale.
Bon 10 pages de commentaires sur G Wan alors que le sujet est php7, ça commence à être casse-couilles.. Le développement et compagnie, c’est pas mon domaine, le mien c’est la com’ et je te suggère de te taire. En clair tu t’enfonces et tu as maintenant tout nxi sur le dos: pour les utilisateurs de nxi, tu es associé à g wan, ton attitude grotesque et ton entêtement le sont aussi. Résultats, G wan a maintenant l’image d’une solution douteuse et à éviter.
Tu compares ton produit à apache/etc.. en essayant de les descendre : mauvais choix, ceux-ci sont 100x plus utilisés et éprouvé. Tu aurais du nous expliquer pourquoi Gwan gagne à être connu et utilisé par rapport à ces solutions, et ce de manière honnête et avec des données vérifiables et indépendantes.
Ton attitude envers les inpacticiens qui critiquaient ta solution et essayer absolument de les faire changer d’avis est également à proscrire, tu as obtenus l’effet inverse.
Enfin ton premier message avait également des relents de publicité douteuse, tu t’es présenté comme un des nombreux utilisateurs satisfaits de Gwan et à affirmé que tu n’avais aucune relation avec eux, hors cette solution est développée par ton beau frère, en plus d’y avoir un conflit d’intérêts tu nous as menti, ton acte ici est l’équivalent des constructeurs qui spam de review positive leur propres produits.
Je m’arrête ici, là prochaine fois présente ton produit de manière honnête, tu auras de bien meilleur résultat. Une refonte graphique du site Web, une doc claire et un forum aiderai grandement également.
Et j’oubliais, arrête d’insister sur le côté gratuit du produit, en l’état actuel ce n’est pas un bon argument, la présence d’un support de qualité même payant est un bien meilleur point dans ce domaine.
Donc maintenant lâche l’affaire et revenons au sujet de la news: php7
moi je trouve ça très rigolo votre discussion reglement de compte à propos de tel ou tel outils
par contre, franchement, à la lecture des premiers posts, je me suis dit “tiens vais jeter un coup d’oeil à ce G-WAN”, mais bizarrement maintenant je n’en ai plus envie :/
Fnux, je serai toi, je me tairais ou je resterai à des arguments plus simples et techniques.
mais vu que tu ne vas pas le faire, continue STP, c’est rigolo quand on lit :)
pour revenir au sujet principal (PHP), je n’utilise plus PHP… j’ai un peu testé à une époque mais j’ai trouvé ça brouillon comme pas possible
j’ai appris à programmer en c# tout seul, et j’avoue que par confort je suis resté à ce langage en sortant de l’école. (d’ailleurs merci Fnux de m’avoir appris que je ne suis pas un vrai développeur)
mais alors PHP, je trouve ça imbutable: illisible rapidement, les méthodes n’ont aucune cohérence dans leur nom, je trouve que faire de l’objet est vraiment compliqué et merdique à souhait…
bref, j’espère que dans la prochaine version que je testerai si je peux je trouverai mon bonheur…
parce que du coup, ça me manque un peu parfois (car à coté php est très souple)
Lit la suite de mon commentaire, sinon je trouve juste inapproprié d’utiliser les commentaires de news nxi pour faire sa promo, surtout de si piètre façon.