D'ailleurs, ce n'est pas un choix, mais bien plusieurs, que nous sommes invités à faire, et le symbole est d'autant plus fort que l'issue du vote aura un impact direct sur PHP 5.4, puisque ce vote concerne les fonctionnalités susceptibles d'être ajoutées au langage avec cette version.
Il nous est en effet demandé de :
- Choisir entre
PHP
etphp
pour l'espace de noms qui sera à l'avenir réservé pour les besoins internes du langage ; - Décider si le nom des types primitifs du langage tels que
string
,bool
,float
etint
doivent devenir des mots réservés ; - Décider si
E_STRICT
doit être intégré àE_ALL
; - Décider l'ajout d'une option permettant de désactiver le nettoyage des données reçues via les requêtes HTTP de type
POST
par le langage ; - Décider si la notation binaire doit être supportée pour affecter des valeurs entières en binaire à des variables ;
- Décider de la suppression des
magic quotes
(ne souriez pas, il y a desconsgens qui ont voté contre cette suppression) ; - Décider si la syntaxe courte pour la création de tableau doit être supportée, et dans l'affirmative, de choisir entre
['foo', 'foo' => 'bar']
et['foo', 'foo': 'bar', 'boo' => 'baz']
; - Choisir s'il doit être possible d'imposer une fonction de retour (aka callback) comme argument, et dans l'affirmative, de choisir entre
callable
etcallback
pour le type des fonctions de retour ; - Décider si le comportement des fermetures lexicales doit être modifié ;
Mais pourquoi est-ce une révolution ?
Tout d'abord, Jusqu'à hier, l'avenir du langage était aux mains d'un petit groupe de personnes qui prenait ses décisions de manière plus ou moins transparente, en fonction de paramètres plus ou moins subjectifs et arbitraires, voire même pour certains en fonction de leur intérêt personnel.
Aujourd'hui, cela fait désormais partis du passé, puisque toute personne disposant d'un accès sur le wiki de PHP et participant au développpeut voter pour ou contre une RFC.
Aujourd'hui, cela fait désormais partis du passé, puisque toute personne qui participe au développement de PHP en tant que contributeur, membre actif de internals@ ou développeur principal d'un projet basé sur le langage peut voter pour ou contre une RFC.
Et comme il suffit de demander un accès au wiki pour l'obtenir, cela signifie qu'un utilisateur du langage peut donner son avis tout autant qu'un contributeur.
Et comme il suffit de s'inscrire sur internals@ pour y participer, cela signifie qu'un utilisateur du langage peut donner son avis tout autant qu'un contributeur.
Ainsi, c'est donc la communauté dans son ensemble, et non juste quelques personnes, qui vont à l'avenir décider de ce que deviendra PHP, et si cela n'est pas une révolution, je ne sais pas ce que c'est.
De plus, auparavant, s'il y avait bien un processus de vote, il était très loin d'être formalisé, et le suivi des résultats était pour le moins délicat.
Pour voter pour une fonctionnalité, il fallait tout d'abord être un contributeur et suivre leur liste de diffusion, internals@, ce qui, je peux vous le dire, demande parfois une bonne dose de courage.
Ensuite, il fallait être au courant qu'il y avait un vote, et ensuite arriver à bien comprendre l'objet du vote, bien souvent très fortement dilué parmi le flux continu de message arrivant quotidiennement sur la liste de diffusion des contributeurs, sans parler de la difficulté à faire le tri entre l'information pertinente et le bruit ambiant, ni de la difficulté à suivre les débats et à s'y retrouver parmi les débats transverses suscités par la proposition de départ.
Les contributeurs devaient ensuite envoyer sur la liste de diffusion un message ayant pour objet le libellé du vote et indiquer dans le corps du message +1 s'ils étaient d'accord avec la proposition, 0 s'ils n'avaient pas d'opinion, et -1 s'ils n'étaient pas d'accord.
Sauf que bien souvent, le contributeur ajoutait des conditions à son vote du style +1 si cela est modifié comme cela, sinon, -1
, ce qui non seulement relançait les débats au cours du vote, mais en plus rendait très compliqué le décompte des bulletins
.
Enfin, les dates de début et de fin de vote étaient bien souvent plus que flou, et il était donc quasiment impossible de savoir s'il était pertinent de voter et si le vote allait effectivement être pris en compte.
En résumé, suivre les débats pour ensuite pouvoir se forger une opinion pour pouvoir voter en toute connaissance de cause était un vrai parcours du combattant, et en conséquence, le nombre de votants était bien loin d'être représentatif.
De plus, le dépouillement des votes était tout simplement une vaste fumisterie, puisque outre le fait que certains votaient au conditionnel, il était très facile de se tromper en décomptant les votes.
Aujourd'hui, cela fait également parti du passé, car chaque vote est dorénavant comptabilisé publiquement et nominativement sur le wiki, et les votes assortis de conditions ne sont plus possibles.
De plus, les dates de début et de fin du vote sont clairement annoncées et le sujet du vote fait l'objet d'une RFC, ce qui permet aux votants de se documenter afin qu'ils puissent prendre leur décision en toute connaissance de cause.
La transparence est donc de rigueur, et c'est la raison pour laquelle je peux vous dire que l'ensemble des propositions relatives à PHP 5.4 sont bien parties pour être acceptées dans leur intégralité.
Encore une fois, si ce n'est pas une révolution, je ne sais pas ce que c'est !
14 réactions
1 De Guile - 11/07/2011, 00:37
A voté.
Bon, sinon, y a des votes où c'est juste un patch qui est décrit (avec un petit paragraphe qui explique un peu ... la désactivation du post processing) ... sinon magnifique initiative de leur part. Je pense que nous allons voir des gens partir mécontent du projet...
Et puis, que se passerait-il si 30000 personnes votent?
La page ne risque-t-elle pas d'être un peu lourde?
Et puis, c'est super, avec ce vote, on est tous un peu contributeur du projet... non? Je dis c'est juste par rapport à ma remarque sur le site de internals@ à laquelle on m'a gentiment répondu d'aller voir ailleurs ou de le faire (contribs are welcome).
Ce type de réponse est typique des politiciens qui entendent la populace râler : si vous êtes pas content, z'avez qu'à le faire hein?! ... Ouai, bin nan, je vote !
2 De ValCapri - 11/07/2011, 00:42
Je crois qu' il était temps, car il y allait y avoir un réel fork. Espérons que cela permet à PHP de progresser dans le sens des développeurs/contributeurs.
3 De Sébastien Douche - 11/07/2011, 01:46
Hello
Je suis tout à fait d'accord avec toi que la normalisation du processus d'évolution du langage est une très bonne chose, et il est même étonnant d'attendre 2011 pour que cela arrive (Python ou Java le fait depuis le début 2000) mais je suis fort étonné que tu apprécie l'ouverture du vote à la communauté.
Personnellement, j'attends des responsables (d'un langage, d'un framework...) qu'ils prennent les meilleurs décisions en s'appuyant sur une longue expertise, parce qu'ils comprennent parfaitement les implications et conséquences des choix proposés. Ils peuvent se tromper bien sûr, mais une bonne communication entre experts, l'obligation de convaincre (notamment par du code) ses co-responsables, diminue les risques. Avoir une armée d'incompétents (aka la communauté) n'aidera en rien à prendre les bonnes décisions, en tout ca pas celles qui sont stratégiques : il faut passer beaucoup de temps à étudier, tester, et avoir des années d'expériences dans le(s) domaine(s) sous jacents. Aucune personne de la communauté ne prendra les bonnes décisions à la place des responsables.
Le problème de PHP vient de l'incompétence des responsables à gérer ce projet (et la transparence nouvelle ne fera que conforter cette impression), pas le processus de décision. L'exemple de l'espace de nom en majuscule (?!) est à ce titre révélateur.
Mais c'est clairement un pas en avant.
4 De mageekguy - 11/07/2011, 07:28
@Sébastien Douche : Il y a certainement encore des choses à améliorer, il peut effectivement y avoir des dérives, et je suis d'accord avec le fait qu'il manque toujours un capitaine à la barre du navire.
Mais j'ai tellement milité pour que l'avis des utilisateurs soit pris en compte dans la communauté que tu comprendras que je ne peux que me réjouir de cette évolution.
De plus, tu as la vue un peu courte, car si tout le monde peut soumettre une RFC, le déclenchement du vote correspondant est toujours sous le contrôle des
qui ne prendront certainement pas le risque d'ajouter une fonctionnalité bancale au langage.Les débats sur internals@ sont donc toujours d'actualité, et même s'ils sont parfois virulents, ils ont fait de PHP ce qu'il est aujourd'hui.
Enfin, j'ai écris des bêtises, ou du moins j'ai été imprécis lors de la rédaction de ce billet : les conditions pour pouvoir voter sont plus restrictives que celles que j'avais indiqué dans un premier temps, et le billet a été mis à jour en conséquence.
5 De foxmask - 11/07/2011, 07:30
Franchement une bonne nouvelle !
On va pouvoir s'impliquer et pas se sentir exclus de toutes ses méandres de décisions sans rien y comprendre.
Finalement heureusement que tu fais le décodeur pour nous
6 De Ivan Enderlin - 11/07/2011, 08:54
Hey :-),
Attention, les mots-clés réservés sont bool, int, string, float et array, et non pas boolean et integer comme tu l'as indiqué (ce sont les noms courts et pas longs qui vont être réservés).
Le lien sur la notation binaire n'aime pas le « l » de « la notation binaire » ;-).
Enfin, oui, c'est une belle révolution et PHP et sa communauté ont su réagir comme il fallait. Ça va dans la bonne direction à mon sens.
7 De MathRobin - 11/07/2011, 09:35
Ah ça y est, on y est !!! Enfin des avancées conséquentes. Le terme révolution est adapté je crois.
Comme tu t'en doutes, je suis dans les partisans des nouveaux mots clés réservés.
Sinon ben "magic_quotes", on peut pas juste virer les mecs qui osent encore voter pour leur conservation. Sérieusement ?
Concernant le choix entre php et PHP pour l'espace de noms, pourquoi pas, mais ça implique quoi le choix de l'un par rapport à l'autre ? rien ?
8 De Da Scritch - 11/07/2011, 10:33
On va du coup effectivement avoir une meilleure vue globale des attentes utilisateurs.
Putain, va falloir que je m'inscrive encore sur une ML ? totoz....
9 De Guile - 11/07/2011, 10:56
[quote]Enfin, j'ai écris des bêtises, ou du moins j'ai été imprécis lors de la rédaction de ce billet : les conditions pour pouvoir voter sont plus restrictives que celles que j'avais indiqué dans un premier temps, et le billet a été mis à jour en conséquence[/quote]
Bon bin "a dévoté"
Par pure sincérité, ne participant ni au dév ni à la liste internals@, j'ai enlevé mes votes.
10 De mageekguy - 11/07/2011, 11:03
@Guile : Renseignement pris, techniquement, toute personne inscrite sur le wiki peut voter.
Cependant, lors du dépouillement, seul les votes des personnes
sont pris en compte.11 De Eric - 11/07/2011, 13:40
Au minimum ce mode de fonctionnement permet aux personnes utilisatrices du langage de savoir "ou il va". Et rien que pour ça, c'est une bonne chose.
12 De Guile - 11/07/2011, 15:11
@mageekguy : c'est super de t'être renseigné! J'avais voté, tout content de pouvoir m'exprimer sur un sujet, mais au vu des dernières nouvelles, j'ai préféré retirer mes votes pour pas polluer inutilement le scrutin. Et je pense que même si techniquement on peut voter, il vaut mieux ne pas le faire quand notre voix ne sera pas décomptée, juste par respect pour la procédure.
Un nouveau sujet a d'ailleurs été rajouté récemment je crois tout en bas de la page... me trompe-je?
13 De mageekguy - 11/07/2011, 16:42
@Guile : Tu ne te trompe-je pas.
14 De Renaud - 16/07/2011, 22:23
Super nouvelle !