Avis aux startups : n'utilisez pas React !

Si vous voulez avoir une chance d’être acheté par une grande organisation, vous ne devriez pas utiliser React…

Je tiens avant toute chose à préciser que je n’ai aucun intérêt à promouvoir ou déconseiller une technologie plutôt qu’une autre. Je n’ai absolument rien contre React techniquement, bien au contraire. Je ne fais que livrer des réflexions à propos de l’attitude de Facebook, qui à mon goût piétine salement des choses qui ont fait les bases et l’essor de l’Open Source.

Ce qui se passe en ce moment dans la communauté Open Source est en effet décourageant. Spécialement quand on sait que de très nombreux modèles économiques (y compris Facebook) existent essentiellement grâce à l’Open Source, dans la mesure où ils n’auraient pas été viables s’ils avaient eu à payer les frais de licences prohibitifs de logiciels propriétaires.

L’Open Source a pour objet de créer des communautés pour construire de meilleurs logiciels ensemble. Cela ne devrait jamais être utilisé comme une place de marché pour y échanger les droits des gens. C’est pourtant ce que Facebook est en train de faire.

Depuis 2014, après avoir auparavant publié sous licence Apache, Facebook pousse un modèle de licence appelé « BSD + Patents » sur tous ses projets, incluant la déferlante populaire React.

« BSD + Patents » signifie essentiellement que le code est ouvert, mais sous copyright par Facebook. La licence BSD vous octroie simplement une permission d’utilisation. Cependant, cette permission ne vous est accordée que tant que vous leur êtes agréables en ne les poursuivant jamais pour violation de brevet.

Dès l’instant où vous poursuivez Facebook, vos droits sur React (et tout autre technologie ‘Open  Source’ issue de Facebook) sont automatiquement révoqués :

BSD-patents-article

Source : https://github.com/facebook/react/blob/b8ba8c83f318b84e42933f6928f231dc0918f864/PATENTS

Le problème a été porté à l’attention du public par la Apache Software Foundation, qui a pris clairement position contre cette licence en la plaçant en catégorie X, interdite d’utilisation dans tous ses projets.

En d’autres mots, si vous utilisez React, vous ne pourrez jamais poursuivre Facebook sur l’un des brevets qu’ils détiennent, et ce pour toujours.

Prenons un exemple :

fridgebook

Imaginons que vous êtes une jeune organisation « FridgeBook » qui vend des frigos connectés. Vos appareils ont un écran qui fait tourner votre application, et l’interface utilisateur est construite sur React.

Ce matin, vous apprenez que Facebook vient de décider de se lancer dans l’industrie du frigo, et qu’ils annoncent le lancement mondial de leur « FBfridge » pour la semaine prochaine.

Vous vous apercevez alors qu’ils ont honteusement pompé votre interface utilisateur. Que pouvez-vous faire ?

Et bien rien dans l’immédiat. Vous utilisez React, vous vous souvenez ?

Si vous voulez poursuivre Facebook avant de migrer vers autre chose, comme vue.js, vous perdrez immédiatement la licence d’utilisation de React, vous mettant vous-même en porte-à-faux pour utilisation illégale de logiciel, face à une société pesant un demi milliard de dollars.

Et bien entendu il est hors de question d’interrompre votre service clientèle.

Si vous voulez les poursuivre, ou au moins vous donner une chance de pouvoir le faire, il va falloir trouver une solution pour migrer le plus loin possible de React dans un temps record.

De plus, imaginons que vous arriviez à migrer. Êtes-vous certain que tous vos utilisateurs auront fait la mise à jour ? …

Si vous développez une startup, assumons que vous — et vos investisseurs — espèrent le jackpot à un moment ou à un autre, pas vrai ? Vous voulez laisser vos portes ouvertes à tous les acquéreurs, spécialement les plus gros : Apple, Microsoft, Google, Amazon, etc.

Ces sociétés possèdent probablement des arsenaux de brevets contre Facebook — et même s’ils ne l’ont pas fait —, ils ne voudront jamais renoncer à leur droit de poursuivre Facebook le moment venu.

Si votre produit est construit sur React, vous acquérir signifie pour  eux perdre ces droits, et c’est une chose à laquelle ils ne sont pas prêts.

Donc, si vous voulez garder vos options ouvertes…

Qu’est ce qui semble sain aujourd’hui pour le frontend ?

Les statuts de vue.js et cycle.js sont clairs et ne présentent pas de mauvaises surprises. Il faudrait que la communauté clarifie les statuts de Preact et Inferno car on se sait pas bien ce qu’ils utilisent des technologies sous brevet de Facebook.

Facebook, s’étant lancé dans une grande justification mettant en avant l’argent qu’ils perdent dans des procès qu’ils qualifient d’abusifs, espèrent être suivis dans cette démarche par les autres géants du logiciel. Espérons qu’ils resteront isolés et ne seront pas suivis, car autrement nous retomberons inévitablement dans une industrie de sources fermées. S’il n’y a plus de chances d’enflammer des communautés, l’Open Source n’aurait alors plus de raison d’être, ce qui serait un terrible retour en arrière…

J’espère que cet article vous aura fait réfléchir, et vous aura donné envie d’en savoir plus sur les positions de Facebook et de l’Apache Software Foundation.

https://www.developpez.com/actu/155966/Facebook-n-a-pas-l-intention-de-changer-sa-licence-React-js-malgre-le-fait-qu-Apache-veut-proscrire-ce-genre-de-licence-des-le-31-aout-2017/

https://github.com/facebook/react/issues/10191#

https://code.facebook.com/posts/112130496157735/explaining-react-s-license/

https://react.jsnews.io/apache-foundation-bans-use-of-facebook-bsdpatents-licensed-libraries-like-reactjs/


EDIT :

Sous la pression de l'Apache Software Foundation et aussi de Wordpress, Facebook est revenu début octobre 2017 sur ses positions et a fini par placer React ainsi que d'autres technologies sous licence MIT. Il s'agit d'une immense victoire pour le logiciel libre et les communautés.