Les raisons derrière la création d’Ayo, le fork de Node.js

Le 29/08/2017

Dans Développement

Les forks sont monaie courrante dans le monde du développement open-source, et le Javascript, dans sa bouillonnante diversité d'outils, est loin de faire exception. Que ce soit par abandon du projet principal, besoin de spécialisation ou désaccord sur l'objectif final à viser, les "bonnes" raisons de Forker existent, mais elles ne sont malheureusement pas les seules.

Prenons le projet NeoVim par exemple. L'objectif du projet était évidemment de refactoriser toute la base de code, devenu si grosse et complexe avec le temps qu'il était presque impossible d'effectuer des changements majeurs, mais les dissensions entre Bram Moolenaar (le développeur principal de Vim) et d'une partie de la communauté de développeurs a bien évidemment joué. Le résultat est que NeoVim avance, Vim avance, et qu'il est impossible de mettre en commun ces avancées. Tristesse.

Neovim

Le cas dont je veux vous parler aujourd'hui parle d'une technique bien plus critique dans le monde du développement web que Vim, et dont la raison du fork est encore plus mauvaise. Aujourd'hui, nous allons parler d'Ayo, fork de Node.js.

Node

Les faits en quelques mots

Note : je ne suis pas là pour jeter des pierres ou quoi que ce soit d'autre, vous ne trouverez donc ni nom, ni compte twitter, ni rien de tout cela dans cet article.

Pour commencer, il me faut préciser que le développement Node js est assujetti à un code de conduite inclusif visant à limiter les discriminations liées au sexe, qui est malheureusement légion dans notre domaine. Rien d'insurmontable néanmoins, surtout en Anglais.

Suite à des comportements répétés jugés comme limite sur le plan du respect du COD d'un membre très important de l'équipe, un vote a eu lieu pour tenter de l'exclure. Le vote s'est terminé avec un rejet de la proposition de renvoi, et les 4 personnes ayant voté pour ont décidé de quitter le groupe en protestation, et ont fork Node.js sous le nom Ayo, où ils vont continuer à développer dans le plus grand respect du COD.

Ayo, It's pronounced like "IO"

Nous ne sommes pas à l'intérieur de l'affaire, il ne nous appartient pas de juger qui a eu tort ou raison. Dans tous les cas, on ne propose pas un vote pour exclure un des membres de son groupe pour rien, et on ne part pas en claquant la porte pour rien non plus. Je pense que cette situation est effectivement la conséquence d'une période d'abus du COD assez longue.

Tout ce que nous pouvons juger, c'est les conséquences, qui sont que le groupe se retrouve à laver son linge sale en publique ainsi que la création d'un Fork.

Évidemment, le nom du fork fait penser très fort à IO.js, qui a été un fork très intéressant pour la communauté et qui aura fini par retourner se merge dans Node js en moins d'un an, mais quand on lit les remarques des frondeurs dans les issues du dépôt d'Ayo, il est clair qu'ils ne comptent pas forcément faire beaucoup de concessions. Ils annoncent qu'ils vont essayer de rester le plus compatible, mais qu'ils ne feront pas l'effort de discuter avec eux.

Io

Et maintenant ?

Il est difficile de prévoir de quoi sera composé le futur, peut-être qu'Ayo va mourir, peut-être qu'il va survivre, et enfin peut-être qu'il va devenir une vraie alternative à Node.js. Mon avis personnel sur la question est que le projet Ayo va s'écrouler par manque de soutiens, d'une ligne directrice claire et d'une vraie roadmap, mais ce n'est que mon avis.

Ce que je SAIS, en revanche, c'est que le futur de Node sera forcément moins rose qu'il aurait pu l'être. Un fork signifie un partage de la force de travail open source disponible, et donc deux projets qui avancent moins vite.

Node

Je n'ai pas de conclusion à avancer sur ce triste sujet. J'espère que cet article vous permettra d'être renseigné sur cet évènement qui impactera tout développeur Node js, et je vous encourage si vous voulez aller plus loin à lire ce post Reddit ainsi que ce post Hacker News, tous deux liés au sujet.