En effet, à l'époque, les raisons données par les traditionalistes pour refuser le changement tenait plus de la mauvais foi que d'autre chose.
Selon eux, la migration de CVS vers subversion est bien trop récente pour justifier un nouvel effort pour migrer vers un autre système, et utiliser un système décentralisé n'apporterait aucun avantage au projet, le tout sur fond de mon DCVS est mieux que le tien
.
Cependant, suite à la lecture du billet de Frédéric de Villamil au sujet de Github et de son influence sur les communautés open-source, je pense qu'il y a une autre explication.
En effet, outre le fait que Frédéric y explique le fonctionnement des projets open-source, et que son explication correspond en tout point à la façon dont est géré le développement de PHP, il y développe une hypothèse intéressante.
D'après lui, Github, en facilitant fortement le fork des projets open-source, prend complètement à contre-pied le modèle de développement, qu'il qualifie de féodal, des projets tel que PHP, puisque tout à chacun est devenu capable de développer sa propre version.
Et lorsque cela se produit, il y a plusieurs conséquences, dont l'une est que les développeurs historiques du projet concerné perdent tout contrôle sur son évolution.
Or, connaissant les développeurs historiques de PHP et le contrôle très étroits que certain d'entre eux exercent sur le langage, à tort ou à raison, je ne peux m'empêcher de penser que l'une des véritables
raisons de cette résistance à la mise en œuvre d'un outil tel que Git est cette peur de perdre le contrôle sur le projet.
En effet, ceux qui ont refusé le plus fortement l'utilisation d'un tel système sont justement ceux qui exerce un contrôle très fort sur l'évolution du langage, et ils ont de plus, pour certain, des intérêts économiques à garder la main-mise sur le projet.
Évidemment, cela n'est qu'une hypothèse et il a bien d'autres explications possibles, mais même si elle était avérée, cela pourrait être totalement inconscient.
Cependant, sur le moment, le rapport entre l'analyse de Frédéric et le débat récent sur ce sujet au sein de la communauté des développeurs de PHP m'a semblé bien trop évident pour ne pas être plausible.
11 réactions
1 De metagoto - 27/01/2011, 23:30
Mouais...
Je n'ai pas suivi les débats récents concernant php et une hypothétique migration vers un dcvs.
En tout cas, à l'époque du passage à subversion, j'ai l'impression que cela s'est décidé principalement en rapport à des considérations très pragmatiques. Il y a une rfc qui résume tout ça d'ailleurs. Github n'avait pas son aura actuelle. En revanche, le faible support de git sur Windows, l'absence de trucs/tools (GUI) ou la méconnaissance du système tout court ont joué en la défaveur de git. Ce n'est pas évident non plus de migrer un projet de l'ampleur de php sur un claquement de doigts. La prudence l'a emporté.
Ces mêmes arguments avaient été avancés pour ZF il y a quelques années. Ils étaient restés sous subversion.
L'article de Frédéric de Villamil est intéressant. Mais on peut utiliser git sans être sur github pour autant. N'est-ce pas ce que fait ZF2 d'ailleurs?
Je comprends que certains projets/communautés n'aient pas envie de livrer leur source tree à une bande de hippies sur github (expression empruntée). C'est plutôt l'aspect "social" qui me semble rédhibitoire, non pas la peur du "fork" (on pouvait déjà forker php quand ce dernier était sous cvs).
En tout cas, rester sous subversion de nos jour est probablement un gâchis.
2 De Da Scritch - 28/01/2011, 11:18
Un client m'a demandé de travailler sur Git. J'avais l'habitude d'autres systèmes, mais c'est clair que l'absence du support natif dans Kdevelop, la possibilité de forker trop facilement, cela à mener à de trop nombreuses confusion quand je tapais des commandes en ligne. Cela devenait plus rapide de créer des copies de répertoires faute de temps pour lire la doc.
Git n'est pas encore franchement maniable par des débutants. Alors je ne parle pas des développeurs de PHP.
euh oups
troll.
Par contre, sur le féodalisme du développement de PHP, je veux bien croire que la possibilité de fork très rapides gène considérablement certains.
3 De Laurentj - 28/01/2011, 11:33
le fait de "vouloir contrôler", si c'est vraiment la raison de cette opposition, ne tient absolument pas selon moi, quand on sait qu'avec Mercurial (et git il me semble), cloner un depot svn n'est affaire que d'une ligne de commande, et synchroniser son dépôt HG/git avec le dépôt svn est transparent (genre avec les outils hgsubversion). À partir de là, je pousse ça sur github/bitbucket. libre ensuite à d'autres de cloner. Et ils forkeront d'autant plus facilement si ils savent que ce clone est synchronisé très régulièrement, voir en temps réèl
Bref, ce contrôle des sources, et donc du projet, n'est qu'illusoire, et ne sert finalement à rien.
PS: d'ailleurs, il y a de forte chance qu'il y ait des clones de PHP sur github ou bitbucket.
4 De Jérôme Renard - 28/01/2011, 11:56
Hello Frédéric,
+1 pour Laurentj.
La question qui me vient à l'esprit est "qui serait assez courageux/fou pour forker un projet comme PHP ?".
5 De Steuf - 28/01/2011, 12:04
Ouai un fork de php avec un peu de normalisation/nettoyage ça ne ferais pas de mal :p
Parce que bon les alias du style is_writeable pour is_writable ça fait vraiment tâche.
6 De usul_ - 28/01/2011, 15:37
Idem, rien n'empêche quelqu'un qui a accés aux sources de php de les mettre sur un github ou autre.
Effectivement, mettre officiellement les sources du projet dessus pourrait être pris comme un encouragement au fork par contre.
7 De Jean-Marc Fontaine - 28/01/2011, 22:42
Le terme "fork" fait peur mais dans la terminologie de Github cela signifie créer sa copie d'un projet pour y apporter des améliorations, généralement en vue de soumettre une "pull request". Il ne faut pas voir derrière chaque fork sur Github l'éclatement d'une communauté.
Des projets comme Symfony ou PHPUnit sont très forkés sur GitHub mais cela reflète plutôt une bonne santé selon moi.
8 De mageekguy - 29/01/2011, 13:24
@Jean-Marc Fontaine : Je suis bien d'accord que le bouton de Github n'a pas la même signification qu'un fork au sein d'une communauté open-source.
Cependant, il peut très bien en être le point de départ, et avec la visibilité offerte par un outil comme Github, l'impact peut être énorme, surtout si le forker dispose du charisme et des possibilités techniques pour récupérer tout ou partie des contributeurs originaux, voir même en attirer de nouveau.
Que ce serait-il passer si, à l'époque, Lukas Kahwe Smith avait, lorsqu'il a quitté le projet PHP, forké PHP 6 sur Github et continué le développement ?
Nous ne le saurons jamais, mais il avait les compétences, les contacts, les moyens, et pour ce que j'en sais, une certaine motivation pour le faire car il s'était fortement impliqué dans le développement de PHP 6 afin qu'il aboutisse.
Alors certes, Github n'est pas Git ou un outil du même genre, mais migrer sur l'un deux pourrait donner des idées et faciliter le fork
, si à l'avenir quelqu'un souhaitait le faire.Et je suis certain que cette idée est très dérangeante pour certains contributeurs à PHP.
9 De Amaury Bouchard - 08/02/2011, 14:31
Intéressant.
D'un autre côté, quel que soit l'outil, la possibilité de forker un projet open-source a toujours existé. Tout le monde peut se faire son propre repository SVN et y copier l'intégralité des sources de PHP, pour gérer sa propre version.
À chaque fois qu'un projet important a été forké (emacs/xemacs, vi/vim, MySQL/MariaDB, OpenOffice/LibreOffice, ...), l'outil de gestion de sources utilisé avait un impact à peu près égale à zéro.
On pourrait même disserter très longtemps à propos du "danger" réel d'un fork. Est-ce qu'un fork basé sur le code source actuel aurait une chance d'être suivi par une communauté qui risquerait de se couper de tout ce qui fait actuellement l'écosystème PHP (php.net, PEAR, PECL, buglist, ...) ?
J'aurai plutôt tendance à croire qu'un vrai "fork" (au sens philosophique et non pas au sens technique) pourrait venir de quelque chose comme le HipHop de Facebook, ou un compilateur JIT. Bref, quelque chose dont le code source n'a strictement rien à voir avec le code actuel. Quelque chose de vraiment "disruptif" (pour utiliser un mot à la mode).
Au passage, on peut grogner contre l'inertie des core-developers de PHP. Mais il ne faut pas oublier qu'ils sont aussi les garants de la stabilité du langage.
10 De mageekguy - 08/02/2011, 14:32
@Amaury Bouchard : Je pense que peu de gens, toi compris (et ceci dit en totale amitié), ont compris que le danger ne vient pas de l'outil, mais de la visibilité qu'il permet d'obtenir via sa composante sociale.
Effectivement, tout le monde peut forker, par un moyen ou par un autre, et personne n'a attendu un outil de gestion de version pour le faire.
Sauf que maintenant, un fork peut obtenir très rapidement, via des outils du type de Github, une visibilité absolument énorme et fédérer autour de lui très rapidement une communauté, et devenir ainsi, sinon la référence, au moins un très sérieux concurrent.
Cela, combiné à un peu de viande de troll, et saupoudré de buzz et de social marketing, peut engendrer bien des problèmes pour le projet originel (manque de ressource, de visibilité, etc), sans parler des impacts économiques, évidement, très présent dans le cas de PHP.
Et cela est encore facilité par le fait que les DCVS modernes sont bien plus puissants et faciles à utiliser (<troll>quoique dans le cas de Git en ligne de commande, j'ai comme un doute</troll>) que l'ancienne génération, notamment pour tout ce qui concerne la gestion des patchs, des merges, etc.
11 De Amaury Bouchard - 08/02/2011, 17:27
Non, non, je vois bien l'impact que peut avoir une plate-forme comme GitHub. La facilité d'utilisation et l'aspect "social" ont un poids bien plus que l'outil de versionning lui-même (Git ou SVN, peu importe au final ; un équivalent à GitHub pourrait être réalisé à partir de SVN, CVS, Mercurial, Bazaar ou un autre, avec plus ou moins de facilité).
Mon point de vue était plutôt de dire :
- Je ne pense pas qu'il s'agisse d'une question technique. Et si c'est ça qui bloque la core-team de PHP, ce serait dommage. Par contre, l'argument «On vient de passer de CVS à SVN, on va pas changer tous les quatre matins» me paraît tout à fait recevable.
- La "visibilité énorme" et la "fédération de communauté", sur GitHub, pour un projet forké susceptible de représenter une menace pour PHP ? Je suis sceptique.
- Personnellement, un fork qui améliore un peu tel ou tel aspect de PHP, je m'en fous. Je ne vais pas m'éloigner de la communauté officielle pour si peu. Par contre, un projet subversif vraiment innovant sur des aspects de performance (d'où le HipHop ou le compilo JIT dont je parlais).