Esta es una traducción de la página original en inglés.

Etiquetas web para licencias de JavaScript: trasfondo y fundamentos

Quienes hoy en día navegan por la red suelen ejecutar en sus ordenadores gran cantidad de software privativo, a menudo sin saberlo. El éxito del software libre en el escritorio se debe en parte a la protección del copyleft, que garantiza que el usuario sabrá desde el principio que es libre de utilizar, estudiar, compartir y modificar un programa concreto. En la red, los navegadores descargan y ejecutan JavaScript sin informar a los usuarios acerca de la licencia del programa ni de las libertades que tienen, ni de la manera en que otros programas se las niegan.

Para abordar este problema desarrollamos el programa LibreJS , que reconoce el código JavaScript que no es trivial y verifica su licencia. Su funcionamiento depende de que se especifiquen las licencias de manera que un programa carente de inteligencia humana pueda reconocerlos con fiabilidad. Además, todas las licencias del software de GNU exigen que se declare la licencia del software que se distribuye, de manera que los receptores conozcan sus derechos, y que se indique el lugar donde encontrar el código fuente.

La manera más sencilla de especificar la licencia consiste en incluir un comentario estilizado en el código JavaScript. Sin embargo, eso puede no ser adecuado para archivos de bibliotecas minimizados, de modo que hemos desarrollado otra forma de declarar las licencias: Etiquetas web para JavaScript.

Fundamentos

En las licencias de software libre, los requisitos de incluir una copia de la licencia y facilitar el acceso al código fuente son casi siempre fáciles de cumplir cuando el software se distribuye a través de la web u otros canales de Internet. Sin embargo, distribuir JavaScript insertado en sitios web es complicado debido a un par de factores particulares: los visitantes reciben el software sin haberlo pedido explícitamente, y los webmasters solo pueden presentar un único archivo de código JavaScript (de modo que no pueden, por ejemplo, enviar un fichero de archivos que incluya otros elementos exigidos por la licencia).

La suma de estos dos factores dejan a los webmasters pocas opciones para proporcionar el material adicional requerido por las licencias de software libre. La solución más sencilla consistiría en disponer el JavaScript solo en forma de código fuente, con una copia completa de la licencia en los comentarios. Eso puede ser razonable en sitios pequeños, pero cuando el JavaScript empieza a tener mucho tráfico continuo, es comprensible que los webmasters sean reacios a presentar tantos datos. Nuestro método les proporciona un lugar claro para presentar elementos adicionales de la licencia (y a los visitantes un lugar claro para consultarlos), atendiendo a ambos factores. En primer lugar, hace visible la distribución del software al ofrecer «Información sobre la licencia del JavaScript» a través de un enlace. La página enlazada proporciona a los webmasters un espacio donde publicar esos elementos, que se destaca adecuadamente pero no perturba a los visitantes.

Legibilidad por las máquinas

A fin de que resulte sencillo rechazar en el navegador el JavaScript que no es libre, nuestro método es lo bastante específico para que un complemento o algún otro software encuentre en el sitio la tabla con la información de la licencia del JavaScript, confirme que todo el JavaScript se encuentra bajo una licencia libre conocida, descargue el código fuente y confirme que se corresponde con el JavaScript optimizado que se presenta en el sitio web. De este modo, los visitantes pueden comprobar rápida y cómodamente si el JavaScript es libre o no lo es, y decidir en consecuencia si quieren o no ejecutarlo. LibreJS es un accesorio para los navegadores basados en Mozilla que ayuda a los usuarios a evitar la ejecución de JavaScript que no es libre, e implementa esas comprobaciones para mejorar su funcionalidad.

Consideramos la posibilidad de basar nuestro sistema en otro formato como RDF para simplificar la tarea de los programadores proporcionándoles información más detallada en un formato que facilitara el análisis sintáctico. Sin embargo, nuestro objetivo era hacer que la información fuera accesible a las personas en primer lugar, y después a las máquinas. Con la utilización de un HTML bien estructurado se conseguía el mejor equilibrio entre ambas prioridades.

Próximos pasos

No decimos que los administradores de un sitio que contiene JavaScript libre deban seguir este método específico para cumplir con las licencias. Toda licencia de software libre expone claramente sus condiciones, y los webmasters que quieran utilizar un método diferente que satisfaga esas condiciones bien pueden hacerlo. No obstante, este método tiene la ventaja de hacer que toda la información de la licencia sea de fácil acceso para los visitantes del sitio (un problema que hasta ahora ha supuesto muchos quebraderos de cabeza), sin limitar las posibilidades de los webmasters de disponer el JavaScript de la manera que prefieran.

Estamos muy interesados en recibir comentarios y sugerencias acerca de otras maneras de cubrir esos objetivos y que sean a la vez más útiles para los webmasters, visitantes del sitio o desarrolladores de software de verificación de licencias. Si recibimos sugerencias suficientes que nos permitan publicar un nuevo método que suponga una mejora apreciable, así lo haremos. (Esta es la razón por la que este método utiliza un identificador tan prolijo para la tabla con la información de la licencia: permitir que el software distinga este método de otros que podríamos elaborar en el futuro). Si está interesado en este asunto, suscríbase a la lista de correo de LibreJS, y escriba ahí sus comentarios y sugerencias. Esperamos tener noticias suyas.