Je caricature quelque peu, car il y a des exceptions, comme Pierre Joye qui participe au développement de PHP depuis très longtemps, mais est pour autant l’un des meneurs du camp progressiste.

Dieu, aka Rasmus Lerdorf, est également une autre exception, car il n’a pas clairement choisi son camp et à même en règle générale un point de vue différent de celui des deux camps, pour le pire ou le meilleur.

Fondamentalement, PHP est donc le résultat d’un affrontement permanent entre ces deux camps qui prend la forme de discussions sans fin dans un langage plus ou moins fleuri ou imagé en fonction de l’humeur des participants sur IRC, les listes de diffusion ou Twitter.

Depuis l’abandon du développement de PHP 6 illustrant les problèmes posés par ce mode de fonctionnement, les progressistes sont parvenus à prendre l’initiative et ont donc actuellement l’avantage sur les traditionalistes.

C’est donc à ses membres que nous devons la quasi-totalité des avancés techniques intégrés au langage depuis sa version 5.3.

Pour autant, leur avantage est très ténu et n’est pas suffisant pour leur laisser réellement les coudées franches.

Chaque suggestion d’évolution est donc malgré tout âprement discutée, même si les progressistes sont parvenus à mettre en place un système de RFC et de votes censé simplifier la prise de décision pour rendre plus transparent le développement du langage aux yeux de ses utilisateurs.

De même, ils sont parvenus à accélérer le développement de PHP, ses nouvelles versions se suivant maintenant à un rythme beaucoup plus soutenu que par le passé.

Pour autant, l’équilibre entre les deux camps est si fragile qu’il arrive que les traditionalistes disposent de suffisamment de poids pour bloquer le développement de fonctionnalités comme celle évoquée par Éric.

Pour remédier à cela, une solution simple serait d’augmenter le nombre de progressistes ce qui leur permettrait de disposer d’un réservoir de votes plus importants et donc d’emporter quasi systématiquement les élections relatives aux RFC.

Malheureusement, il n’est pas évident de s’intégrer à la communauté des développeurs de PHP.

En effet, même si des efforts sont actuellement faits pour faciliter l’intégration, le manque de documentation et d’informations ainsi que l’ambiance très particulière qui règne au sein de la communauté et son côté très « fermé » (je vous laisse deviner le camp qui fait de l’obstruction sous diverses formes à l’arrivée de nouveaux contributeurs) font qu’il faut vraiment en vouloir pour parvenir à participer activement et significativement au développement du langage.

De plus, le suivi des discussions des développeurs sur IRC ainsi que celui des diverses listes de diffusion ainsi que l’analyse des RFC et des modifications effectuées quotidiennement sur le code demande un travail relativement important pour être effectué correctement.

Pour avoir fait la chronique des discussions ayant lieu sur internals@, la principale liste de diffusion du langage, pendant pas mal de temps avant de passer le flambeau à Pascal Martin, je suis très bien placé pour savoir le travail que cela demande, d’autant que le « bruit » peut y être très important et perturbe donc l’extraction des informations essentielles.

De plus, les « disputes » ayant lieu publiquement via Twitter ou d’autres canaux entre les deux camps n’encouragent pas vraiment un éventuel contributeur à s’investir.

Le serpent se mord donc la queue, puisque pour que les progressistes puissent réellement prendre la main, il faudrait que la communauté soit plus attrayante et ouverte, mais pour cela, il faudrait que le camp des traditionalistes devienne vraiment minoritaire, ce qui implique l’intégration de sang neuf.

Et le problème se complique encore lorsque l’on intègre Zend dans l’équation.

Zend est en effet la société à l’origine du Zend Engine, la machine virtuelle qui interprète et exécute le code PHP et son modèle économique repose intégralement sur le langage.

Cette société a donc tout intérêt à le faire évoluer, mais uniquement si cela ne va pas à l’encontre de ses intérêts économiques.

Il a donc été très difficile de faire adopter le principe des RFC et des votes à Zend à l’époque, car cela impliquait pour elle de perdre une grande partie du contrôle qu’elle avait sur le développement du langage, ses membres étant historiquement plus traditionalistes que progressistes.

Pour autant, depuis, Zend n’avait que très peu participé aux différents débats ayant agité la communauté des développeurs, du moins jusqu’à maintenant.

Il y a quelques semaines, Zeev a en effet annoncé que Zend allait rendre public le code du « Zend Optimiser + » en vue de son intégration dans PHP en lieu et place de APC dont le développement présente beaucoup de difficulté et ne parvient pas à suivre le même rythme que celui du langage.

Sur le moment, j’ai pensé que c’était une très bonne initiative et que PHP avait tout à y gagner, mais je me suis tout de même demandé le prix que devrait payer la communauté pour profiter de ce « cadeau » ainsi que l'objectif poursuivi par Zend.

J’ai très vite compris.

En effet, très bizarrement et pour une fois, la plupart sinon la totalité des traditionalistes sont favorables à une intégration très rapide du code de Zend dans PHP, quitte à ne pas prendre toutes les précautions nécessaires et ne pas suivre les procédures qui ont été mises en place dernièrement par le camp progressiste.

Zend semble donc se servir de son « cadeau » à la communauté comme d’un cheval de Troie pour reprendre la main sur le développement du langage.

Évidemment, les progressistes font leur possible pour limiter les dégâts tout en soutenant l’initiative, car même s’ils sont enthousiastes à son propos, ils ne veulent pas que les choses soient faites n’importe comment et surtout ils ne veulent pas qu'elle permette à Zend de verrouiller le développement futur du langage.

Ils souhaitent donc que la communauté dispose du temps nécessaire pour prendre connaissance du code et de ses impacts techniques avant qu’une intégration complète soit effectuée.

À contrario, Zend, par l’entremise de Zeev, fait tout son possible pour que cette intégration se fasse le plus rapidement et le plus complètement possible.

Dans un tel contexte, il faut donc vraiment du courage pour vouloir devenir un contributeur, mais paradoxalement, je pense que l'entrée de nouveaux membres dans la communauté de ses développeurs est la seule façon pour le langage de ne pas tomber plus ou moins sous la coupe d'intérêts économiques et de continuer à évoluer comme il le fait actuellement, voir mieux encore.