Je discutais il y a quelques jours avec un ami qui me racontait comment Facebook avait choisi une licence pour son logiciel React qui faisait beaucoup polémique. J'étais surpris qu'il en parle comme quelque chose de récent alors que le choix date d'il y a longtemps, je me suis dit que quelque chose avait dû se passer ces derniers mois. Or ce matin, Facebook a fait l'annonce monumentale de changement de licence et j'ai pu découvrir ce qui s'était passé ces derniers mois. Je vais vous parler des récentes péripéties mais avant je vais présenter le sujet un peu pour ceux qui ne s'y connaissent pas trop (attention je ne prétends pas non plus être un expert sur le sujet).
La polémique initiale
Pourquoi une licence open source ?
Pour ceux qui ne connaissent pas trop toutes ces histoires de licences open source, une petite explication. Déjà il faut en général différencier logiciel open source (on a un droit d'accès au code source) et le logiciel libre (on a beaucoup plus de libertés pour ré-utiliser le code). Le premier est déjà important pour pouvoir être sûr qu'on exécute pas de code malicieux, pour comprendre ce que fait le code exactement. Cependant le logiciel libre est plus intéressant, il permet une réutilisation de code plus libre, ce qui permet de créer de véritables pyramides de logiciel libre où chaque logiciel est composé d'autres logiciels libres, c'est une véritable force. Dans cet article je ferai l'almalgame entre licence open source et licence libre, pour ceux qui voudraient se renseigner plus sur la différence voici déjà un article dessus.
Les licences open source les plus utilisées sont les licences Apache, MIT et BSD. Vous pouvez trouver une liste plus complète ici.
Qu'est-ce que React ?
React est une librairie logicielle dans le langage Javascript éditée par Facebook. C'est ce qu'on appelle une librairie Front-End c'est à dire qui sert à coder les effets visuels qui seront vus par les utilisateurs, en général sur les sites web. Facebook utilise React pour ses propres produits et la librairie a été très bien reçue par la communauté internationale de développeurs, de nombreux autres produits s'en servent à présent.
La licence de React
Une des plus grandes critiques sur React a été la licence utilisée. À sa sortie en 2013 React utilisait une licence Apache. Cependant en 2014 ils ont changé et ont pris une licence BSD avec un ajout, c'est cet ajout qui est controversé. L'ajout dit que si l'utilisateur de la licence fait un procès pour des brevets à Facebook il perd le droit d'utiliser React, et dois donc changer les parties de son logiciel qui utilise React. Pour Facebook c'est une bonne méthode pour se protéger de nombreux procès, il y en a beaucoup autour des brevets dans le monde du logiciel. On appelle souvent cette licence comme étant la licence BSD + Patents, je parlerai ici de licence Facebook.
Sur HackerNews (site qui recense des liens avec discussions) il y a eu de nombreuses discussions au cours des années précédentes sur la licence de React.
Les récentes péripéties
Le 20 avril 2017 a débuté un fil de discussion à la fondation Apache (qui, entre autres, gère de nombreux projets open source) concernant l'utilisation de la licence Facebook. Mi-juin la fondation Apache a décidé de rajouter la licence de Facebook dans ce qu'ils appellent leur catégorie X (licences incompatibles avec la leur) et Mi-juillet ils ont annoncé publiquement aux gérants de leur 310+ projets les conséquences. Ces conséquences étant que plus aucun nouveau projet Apache ne peut utiliser de code sous la licence Facebook, tout projet existant avait jusqu'au 31 août pour se débarrasser de tout code sous la licence Facebook. Cette décision est assez majeure car tout projet open source est en général construit sur une pyramide de projets open source, si l'on retire un bloc tout peut s'écrouler.
Le 18 août Facebook a annoncé que la décision de la fondation Apache était bien dommage mais qu'ils n'allaient pas changer leur licence pour autant. Cette licence continuait de représenter leur volonté de faire de l'open source tout en se protégeant préventivement de potentiels coûteux procès.
Le 14 septembre Wordpress a annoncé qu'ils allaient arrêter d'utiliser React, devant les conséquences ambiguës de l'utilisation de la licence Facebook ils ne se sentaient pas à l'aise de l'imposer à leurs utilisateurs. Wordpress étant utilisé sur plus de 25% des top 10 millions des sites web au monde (cf. w3techs) ceci signifie qu'au minimum React n'allait plus être utilisé par 2.5 millions de sites web. C'est aussi un signal fort pour le reste du monde open source de suivre l'exemple de Wordpress et Apache.
Et on arrive enfin à aujourd'hui, le 23 septembre (ou 22 au soir pour eux j'imagine) où Facebook a annoncé qu'ils passaient React et d'autres projets sous licence MIT, licence open source sans ambiguïté.
Je ne peux que féliciter Facebook pour leur choix, c'est assez peu souvent qu'une des méga-corporations informatique laisse de côté son intérêt court terme pour embrasser l'intérêt de la communauté open source (dont ils tireront des intérêts long terme). Et c'est toujours assez courageux de revenir sur une décision, surtout quand on est pas convaincu qu'elle soit mauvaise.