Al elegir bibliotecas de código abierto para usar como parte del software que está desarrollando, debe tener mucho cuidado porque las diversas licencias difieren bastante entre sí.
Las reglas que establecí para mí se detallan a continuación.
Si algo usa GPL, no es una opción. GPL es una licencia demasiado restrictiva, en mi opinión, y no estoy de acuerdo con los principios detrás de ella. El uso de GPL básicamente lo obliga a liberar su propio código fuente bajo la licencia GPL, lo que obviamente no es deseable en muchas situaciones.
- ¿A dónde van todos los viejos programadores?
- ¿Dónde puedo obtener contactos de proveedores para proyectos de outsourcing de software?
- ¿Qué tipo de trabajo se asigna en las ramas indias de gigantes de software como Google y Facebook?
- ¿Es bueno comenzar mi carrera como probador de software?
- ¿Por qué el desarrollo ágil es tan polarizador?
Si algo usa LGPL, a veces es aceptable pero no ideal. LGPL le permite hacer uso de la biblioteca sin tener que liberar su código fuente y sin obligarlo a usar la misma licencia. Sin embargo, si realiza cambios en la propia biblioteca de código abierto, debe liberar esos cambios.
En el contexto de C ++, un inconveniente de LGPL es que está obligado a usar el enlace dinámico en lugar del enlace estático, ya que usar este último se considera como ‘crear un trabajo derivado’. El motor de gráficos Ogre, por ejemplo, tuvo que alejarse de LGPL porque impedía que los desarrolladores lo usaran para desarrollar para consolas de juegos (Sony y Microsoft tenían reglas establecidas que especificaban que las bibliotecas de terceros tenían que estar vinculadas estáticamente, mientras que el uso de La licencia LGPL solo permite la vinculación dinámica).
Las licencias ‘buenas’ son las licencias menos restrictivas, como la licencia MIT, la licencia Boost, la licencia BSD y la licencia ZLib. Si encuentra una biblioteca de código abierto que usa una de estas, generalmente puede estar seguro de que puede usar la biblioteca sin tener problemas legales. Estas licencias son bastante similares entre sí (no voy a entrar en detalles) ya que todas le permiten usarlas sin tener que liberar su código fuente, sin especificar cómo licencia su código y sin restringirlo a la dinámica enlace.
Descargo de responsabilidad: por supuesto, incluso con las licencias más permisivas, aún debe leer las licencias de cualquier biblioteca de código abierto que use para asegurarse de que su propio proyecto cumpla con sus términos.