Mi punto de vista sobre la licencia BSD + Patent grant de React

Ivan B. Trujillo
CanariasJS
7 min readAug 20, 2017

--

Últimamente se ha generado una polémica en torno a las licencias que establece Facebook en sus herramientas opensource para desarrolladores como React, React Native, GraphQL, Jest, etc. siendo la primera la mas extendida.

Basándome en lo que he ido averiguando y leyendo sobre el tema, expongo mi punto de vista y el significado que tiene para un desarrollador o un emprendedor el uso o el no uso de las herramientas de React para crear su startup o sus proyectos, y para concluir, mi opinión al respecto.

El origen del problema

Facebook aplica una licencia a sus librerías que se denomina BSD + patent grant, que en resumidas cuentas viene siendo una librería opensource de libre uso pero con una restricción sobre patentes la cual es la siguiente:
Facebook te da una licencia de sus herramientas salvo que tu registres una patente la cual sea construida con cualquiera de sus productos y denuncies a Facebook por violarla al desarrollar un producto usando tu patente. En tal caso, ellos revocarán tu licencia.

En la Apache Software Foundation tras una revisión de sus licencias, han movido la licencia BSD + patent grant de Facebook a la categoría X. Esto implica que los desarrollos realizados en la Apache Software Foundation a partir de ahora no pueden usar los productos de Facebook, debido a que su licencia es incompatible con lo que desde la ASF consideran software opensource.

Las dudas que todos tenemos

En general, muchos emprendedores / desarrolladores tenemos dudas sobre en qué nos puede afectar esta licencia y toda la polémica generada en torno a ella.

¿Tengo un problema con mis proyectos o mi negocio construido sobre estas librerías? No

Para el resto del mundo nada ha cambiado, solo están afectados los proyectos de la ASF y por el hecho de cambiar ellos mismos la licencia de React de categoría. React no ha cambiado su licencia, si ya la usabas, sigue siendo la misma.

Las grandes compañías no usan React: FALSO
Las grandes compañías usan React: Netflix, Uber, Airbnb, Paypal, Amazon, Microsoft, Google, Apple …

Esto es algo dicho por Dan Abramov, una de las principales cabezas visibles de Facebook. En un primer momento, lanzaron una licencia con la cual estas otras grandes compañías no estaban de acuerdo.

Partiendo de aquí, hicieron una revisión de esta licencia y ahora estas compañías sí están de acuerdo con ella.

Un ejemplo es que Microsoft lanzo recientemente React Native para Windows, desarrollado por empleados de Microsoft y anunciado en su blog:
https://github.com/Microsoft/react-native-windows
https://www.microsoft.com/developerblog/2016/05/26/creating-universal-windows-apps-with-react-native/

Otro ejemplo es que la nueva version de Skype usa React.
La web de Twitter / Netflix usa React.
La app movil de Uber está hecha en React Native.
La web y la app movil de Airnbnb usa React y React Native respectivamente.

Facebook no apoya el software opensource (Falso)

Facebook sí apoya el software opensource. Es sponsor platinum (aporta 100.000$ al año a esta fundación.

En general, muchas de las herramientas más innovadoras en el mundo del desarrollo, sobretodo Javascript, son liberadas por Facebook.

Otras compañías no liberan las librerías importantes de su negocio, o simplemente liberan una parte. Cierto es que otras sí liberan todo.

Facebook se comerá tu pequeña startup (Falso)

Facebook no se comerá a tu startup ni te denunciará por usar React ni nada parecido. El motivo de su licencia no es para destruir otras empresas o startups, es para evitar que otras empresas que se benefician de las librerías desarrolladas por Facebook los denuncien por violar patentes construidas sobre sus propias librerías.

¿Si voy a crear una startup, no debo usar React? Depende

Esta opinión viene dado a raíz de otro articulo que he leído.

Puedes crear tu startup sin problemas y utilizar las herramientas que Facebook te ofrece para ello, si tu objetivo no es patentar algo, sino simplemente encontrar tu hueco en el mercado y hacer funcionar tu empresa, como es el caso de la gran mayoría de startups.

Si tu objetivo es patentar algo y quieres evitar que Facebook saque en un futuro un producto como el tuyo, no uses React porque debido a sus licencia podrán hacerlo.

Simplemente es eso, no hay que volverse locos con que Facebook es el demonio en persona. Evalúa tu negocio, evalúa los beneficios que puede darte las herramientas de Facebook para llegar a donde quieras llegar y valora si a cambio de ese beneficio, estás dispuesto a permitir que en un futuro Facebook saque un producto similar al tuyo.

Si en algún momento de mi vida tengo que preocuparme por eso, creo que tendré mi empresa estable, mi nicho de mercado y mis clientes, y honestamente, tendré suficientes millones en el bolsillo como para que me preocupe tener un jet privado más o un yate menos.

En general, el 90% de los emprendedores no vamos a patentar nada, simplemente queremos encontrar nuestro hueco de mercado y la licencia de Facebook no te afecta en este caso para nada.

Si eres inventor, ingeniero o similar, simplemente evalúalo.

¿Si compito con Facebook, terminará mi licencia de React?
No. Puedes competir con Facebook sin ningún problema.

¿Si inicio una demanda por infracción de patentes contra Facebook, terminará mi licencia de React?
Sí. No puedes demandar a Facebook por considerar que ellos infringen una patente desarrollada con alguno de sus productos. Ellos previamente te avisarán de que no puedes demandarlos al usar sus librerías.
Si retiras la demanda todo seguirá de forma normal. Si sigues adelante, perderás tu licencia sobre sus librerías, obligándote a modificar todo tu producto patentado o en caso de seguir, entonces ellos te demandarán a ti.

¿Si violo una patente de Facebook, terminará mi licencia de React?
Sí. Este será el menor de tus problemas viendo lo que se te viene encima, pero ocurre igual con todas las compañías.
En este caso, Facebook previamente te avisará antes de iniciar una demanda.

Facebook invierte mucho dinero en este tipo de litigios, los cuales acaba ganando en los tribunales. Con la declaración de esta licencia, quieren evitarse perder tiempo, dinero y recursos en este tipo de demandas trolls que compañías y emprendedores hacen contra Facebook, con el fin de obtener una indemnización millonaria.

Como afecta esta licencia a un desarrollador o un emprendedor

Estoy acostumbrado a usar React, ¿debo cambiar?

Primero plantéate cuáles son tus objetivos y luego decide.

En general, como buen programador, debes de saber programar Javascript independientemente del framework o librería que uses.

Partiendo de aquí, yo no cambiaría, pero es mi opinión. Igual pruebas Vue o Angular y te gusta. Te animo a probar todo y decidir por ti mismo.

Valoremos el trabajo que hace Facebook

En mi opinión, creo que es justo que Facebook se proteja contra este tipo de demandas y de litigios cuando en gran medida, es uno de los impulsores de nuevas tecnologías. Pongo un ejemplo:

Angular 1 fue completamente rediseñado a Angular 2 tras ver como React utilizaba el DOM para funcionar.

React Native es pionero en permitir crear aplicaciones nativas (no webviews ni Cordova) para varios SO usando Javascript. También existe NativeScript, pero solo tienes que comparar la documentación y la cantidad de plugins para darte cuenta que no tienen comparación.

GraphQL es una herramienta la cual permite gestionar las peticiones a una API a través de un único endpoint, dando al cliente el poder de decidir que quiere recibir, descartando datos innecesarios y simplificando el desarrollo y la comunicación cliente/servidor. Para muchos desarrolladores es el fin de las API Rest, y consideran GraphQL el futuro de las APIs.

Hay que ser un poco coherente con lo que se reclama. Si tu negocio existe gracias a Facebook, no busques ganar millones a costa de demandarlos.

Conclusión

Yo honestamente, prefiero aprovecharme de los beneficios que me da la tecnología y el enfoque de Facebook para lanzar mis productos y proyectos al mercado.

La realidad es que muchas de las compañías que en su momento usaron Angular en vez de React, se han quedado colgados con una tecnología obsoleta por los errores en su enfoque. Esto me hace creer que Facebook tiene una mejor manera de enfocar y crear las cosas.

Ahora todas estas compañías están usando Angular 1 el cual ha quedado obsoleto, o migrando a Angular 2 con el coste que eso conlleva.

En el mundo real, dado que Airbnb o Netflix usan React, implica que mañana Facebook puede implementar un sistema de alquiler de habitaciones en Facebook o su propia plataforma de series y peliculas online.

¿Crees que Airbnb o Netflix estarían ahi usando otra cosa? Puede que si, puede que no. Ellos están felices usando React y sus derivados.

Por algun motivo están ahí, y la realidad es que los grandes de la industria usan React por su potencial y porque les gusta la forma que tienen los ingenieros de Facebook de enfocar su software.

Con esto doy mi opinión sobre el tema y espero que quede un poco mas claro. De igual forma, tengo entendido que desde Facebook están estudiando todo esto y la posibilidad de cambiar su licencia.

Yo seguiré usando React y derivados. Me encanta su tecnología y creo que aprovechándome de ello, puedo sacar mejores productos y proyectos.

Me gustaría que en respuesta al post compartieran su punto de vista. Yo aclaro que este es mi punto de vista y respeto el punto de vista de los demás.

Un saludo!

--

--