Si alguien está tan confundido acerca de las licencias de software como yo, así es como los veo ahora. Las licencias de software controlan lo que las personas pueden hacer con su código. La licencia MIT permite a las personas hacer cualquier cosa. Supongamos que crea una biblioteca de análisis JSON con licencia MIT. Una startup puede tomar su código, modificarlo y venderlo como parte de su servicio API de pago sin devolverle nada. Solo necesitan mantener su aviso de derechos de autor en los comentarios del código. React usa MIT, por lo que Facebook podría haberlo hecho propietario, pero optaron por mantenerlo abierto. Esta es la licencia de "haz lo que quieras". GPL obliga a compartir. Imagina que creas un framework web bajo GPL. Si alguien modifica su marco para agregar nuevas características, también debe publicar esas modificaciones como GPL. No pueden vender una versión propietaria. WordPress usa GPL, por lo que todos los temas y complementos de WordPress también deben ser GPL. Si construyes un CMS comercial sobre WordPress, todo tu CMS se convierte en GPL. Esto mantiene todo de código abierto. Apache 2.0 maneja mejor las patentes. Escribes una biblioteca de aprendizaje automático y alguien contribuye con un algoritmo. Más tarde, intentan demandar a los usuarios por infracción de patente en ese algoritmo. Con la licencia de Apache, pierden automáticamente sus derechos de uso de su biblioteca. Es protección contra los trolls de patentes. Kubernetes usa Apache 2.0 porque las empresas de la nube se preocupan por los problemas de patentes. BSD es básicamente MIT con diferentes palabras. Se crea una biblioteca de red en BSD. Las mismas reglas que el MIT, la gente puede hacer lo que quiera. FreeBSD usa esto, por lo que Apple podría tomar el código BSD y ponerlo en macOS sin liberar el código fuente de macOS. La mayoría de los desarrolladores solo usan MIT ahora porque es más claro. LGPL es GPL para bibliotecas. Construyes una biblioteca de generación de PDF bajo LGPL. Las empresas pueden usar su biblioteca en su software propietario sin hacer que toda su aplicación sea LGPL. Pero si modifican el código de su biblioteca en sí, esos cambios deben ser LGPL. El reproductor multimedia VLC usa LGPL para que otras aplicaciones puedan incluir reproducción de video sin convertirse en GPL. Propietario significa que usted controla todo. Construyes un motor de base de datos y lo mantienes propietario. Las empresas le pagan tarifas de licencia para usarlo. No pueden ver el código fuente, no pueden modificarlo, no pueden redistribuirlo. Oracle Database funciona de esta manera. Gana dinero con las licencias, pero limita quién puede usarlas. La doble licencia ofrece opciones. Publica una base de datos bajo licencias GPL y comerciales. Los proyectos de código abierto utilizan la versión GPL de forma gratuita. Las empresas que no quieren restricciones de GPL pagan por la licencia comercial. MySQL hace esto. Las startups usan MySQL gratis, las grandes empresas a menudo compran licencias comerciales. El dominio público renuncia a todos los derechos. Creas una función hash y la pones en dominio público. Cualquiera puede hacer cualquier cosa con él, sin restricciones, sin necesidad de atribución. SQLite hace esto. A las agencias gubernamentales les encanta porque no hay riesgo legal. ¿Está construyendo una biblioteca que desea que todos usen? Elige MIT. ¿Quiere asegurarse de que las mejoras regresen a la comunidad? Utilice GPL. ¿Preocupado por las patentes en software empresarial? Ve con Apache. ¿Construir un negocio en torno a su código? Manténgase propietario. ¿Quieres la máxima libertad para los usuarios? Prueba el dominio público. La clave es hacer coincidir sus objetivos con las restricciones de licencia. No copie lo que hacen otros proyectos sin entender por qué eligieron esa licencia.
22.17K