Pregunta sobre licencias

oigan, ¿alguien me podria explicar cosas como las licencias de codigo abierto y ese tipo de cosas , y como gestionar un proyecto en github o de ese tipo?

como podran haber visto ya en general, si es que alguien lo ha visto ya. pues estoy creando un programa para hacer horarios, y dentro de todo, creo que me ha quedado bastante bien, ya tengo mejoras que creo que ya hacen que el programa empiece a valer un poco la pena (mejoras que no han visto por que aun no las he publicado), ya es algo utilizable.

entonces quisiera pues, saber como gestionar este tipo de cosas, y ya de paso, si alguien no le importaria, o no le resultara molesto, pues que me diera un poco de retroalimentacion.

2 Me gusta

¡Hola! He visto el proyecto que has hecho, y me gustó mucho la idea.

Sobre las licencias, es algo complejo entender todas las licencias y lo existente, por lo que te daré algunas guías, y eres tú el que debe decidir cual usar:

1. ¿Qué es una licencia?

El código de programación, al igual que dibujos, modelados, libros, etc. es de tu propiedad intelectual, por lo que sólo tú puedes decidir qué hacer con tu programa.

Comúnmente, si no estableces ninguna licencia, cualquier otra persona que use tu código sin tu permiso puedes denunciarlo. Por eso mismo, existen las licencias. Hablando de Software, varios proyectos han creado licencias completas que puedes usar (aunque también en realidad puedes crear la tuya simplemente escribiéndola, pero las hechas por fundaciones suelen estar mucho más completas defendiendo tus derechos y los de los demás).

2. Diferencias entre código privativo, abierto y software libre

Lo explicaré bastante rápido.
El código privativo no lo puedes ver, únicamente puedes verlo tú y hacer lo que quieras con él. Cualquier tipo de copia (incluso con ingeniería inversa si se copia exactamente tu código) puedes demandar por tus derechos intelectuales.
El código abierto si puedes ver el código, pero no modificarlo ni distribuirlo. En caso de hacerlo alguien, puedes demandarlo.
Y el Software Libre permite (según la licencia) ver su código fuente, estudiarlo, modificarlo y distribuirlo libremente. Cada licencia establece los requisitos para poder hacerlo.

3. ¿Qué licencia debo elegir?

Depende completamente de ti. No te recomendaré licencias privativas o abiertas ya que el foro es sobre código libre, cosa que sí recomendaré.

Existen muchísimas licencias, probablemente las más usadas son:

  • GNU General Public License 3 (GNU GPL-v3): Si modificás un programa con la misma licencia, estás obligado a distribuir tus modificaciones bajo la misma licencia. Te recomiendo leer el resumen oficial. Existe también la Lesser y la Affero, en tu caso te recomiendo la común.
  • MIT: Es una licencia bastante usada, básicamente podés usar, modificar y distribuir libremente el código, sin la necesidad de compartir los cambios que hayas hecho. Además te permite compartir software privativo bajo esa licencia. Te recomiendo leer el resumen oficial
  • Mozilla Public License: Es una especie de punto medio, tenés las mismas libertades, pero cualquier cambio hecho a un archivo protegido con la licencia debe ser compartido.
  • Apache 2.0: Es muy similar a MIT, sólo que si una persona reclama una patente en tu código protegido, será restringido de usarlo.

PD: Este es un resumen hecho a mi entendimiento, te recomiendo leer los resumenes y textos oficiales

4. ¿Cómo aplico una licencia?

No es nada del otro mundo. Sencillamente incluye en el código un archivo “LICENSE” o “COPYING” (puede tener extensiones como .txt, .md, o no tenerla) con el texto original de la licencia (No lo modifiques ni uses una versión traducida, siempre la original). Además te recomiendo incluir al principio de cada archivo un comentario aclarando la licencia que lo protege.

Si usás algún código de otra persona no compatible, podrías tener problemas legales, por lo que siempre asegurate de simplemente inspirarte o solicitar permiso por escrito del otro desarrollador.

6 Me gusta

Sobre cómo gestionar un proyecto en GitHub, eso ya es algo bastante más complicado (no complicado, si no con varias cosas que no son sencillas de explicar en una simple guía) y que se aprende con la práctica.

Te recomiendo ver tutoriales en YouTube de Git y GitHub, te enseñarán a usar Git, a publicar releases con GitHub, y otro tipo de funciones. Lo que yo creo que es más necesario es saber usar las ramas o branches y separar siempre las de desarrollo de la master o main, para que cualquier persona que quiera clonar el código y compilarlo no se encuentre errores.

Puedo ayudarte si lo deseas, aunque tampoco soy tan sabedor

1 me gusta

¿el punto 4 es asi de facil? ¿no habria que contactar un abogado o algo asi?

bueno, muchas gracias en todo caso.

1 me gusta

yo honestamente, solo quiero que no cambien mi forma que tengo para tener una sintaxis entera en español. sino el programa no seria lo mismo para mi, aunque entiendo que de esta forma la compilacion es mas tardada. pero creo que no haya una licencia que se acople a esta necesidad en especifica. en todo caso, creo que elegire la GPL, honestamente, dudo muchisimo que en un futuro quiera tener una version privativa. y honestamente soy de los que prefiere tener el codigo fuente para que funcione en todas partes, que ya me ha pasado que tengo un programa para linux y no puedo utilizarlo porque es privativo y solo funciona en x86, ahh

me acabo de dar cuenta de algo, y parece ser que por utilizar wkhtmltopdf creo que estoy obligado a que mi programa tengo una licencia GPL forzosamente ¿no?

¡No! Es el motivo por el que existen las licencias. Ahora, si alguien las incumple, si deberías conseguir uno para poder denunciar el mal uso.

Ninguna licencia cambiará la forma de tu código, solo los derechos de uso del mismo.

Si, es probable, si está licenciado bajo GPL debes hacerlo

bueno, tampoco es que me importara mucho la licencia que tenga mi programa. mientras pueda utilizarlo en todos lados esta bien. aunque revisando mi codigo, pues no tengo el codigo directamente del programa wkhtmltopdf, sino que hago una llamada al programa que se debe instalar por aparte. honestamente no tengo ni idea. bueno, ya que. quizas y si se puede me hago alguna cuenta de algo para recibir donativos y asi poder comprarme unos nachos, o quizas los materiales para una rica pupusa. como ha de ser. en fin, muchas gracias por las aclaraciones

1 me gusta

se que bueno, el codigo no cambia. pero si se crea una bifurcacion de mi proyecto, porque no se, alguien se arto de la sintaxis y quiso eliminarla. pues eso ya no me haria tanta gracia la verdad.
que si se que mi implementacion de sintaxis es bastante chapusera. pero lo hice yo como pude.

1 me gusta

Es parte de la filosofía del software libre. Todos tienen derecho a clonar el código y mejorarlo, ahora será tu decisión si añadirlo en el proyecto que manejas.

En caso de no quererlo, lo mejor sería elegir código abierto

Capaz estoy equivocado, pero me parece que te enfocas en lo menos importante de tu proyecto, la sintaxis del código. Me explico, cuando desarrollas, es más importante la idea detrás del desarrollo que el código en sí. Si alguien lo bifurca, lo hará por el concepto de tu proyecto, no por si el código está bien escrito o no. A la larga el código es solo una herramienta, no un fin en sí mísmo. No creo que nadie bifurque tu proyecto solo para ajustar la sintaxis y mantener la funcionalidad igual. El que bifurque es porque encontró un concepto valioso en tu proyecto y quiere extenderlo, agregarle nueva funcionalidad y de paso, si se le antoja cambiar la sintaxis. Pero el concepto, que es lo importante, seguirá estando ahí.

Ahora bien, si lo que quieres es que las bifurcaciones que hagan no cambien en nada de lo que tu escribiste, capaz licencias libres no son lo que estás buscando, porque en cierto modo estás haciendo que la sintaxis del proyecto sea “propietaria” ya que no quieres que nadie la modifique o ajuste.

Por último, me parece que con esa idea de no querer que nadie cambie tu código pierdes oportunidad de aprender e inclusive mejorarlo. No es un ataque a tu modo de pensar, pero considera que si otro está dispuesto a leer tu código y sugerir mejoras, probablemente es para bien.

1 me gusta

a mi me da igual lo que hagan, siempre y cuando este el sintaxis_es y se utilice, ya luego que haga lo que quiera

1 me gusta

bueno, en parte si, le doy mucha importancia al archivo de sintaxis, pero es porque soy muy cabezon con el tema, mi hiere como la comunidad hispana en el termino de programacion es muy importante, pero sin embargo muy apenas hay algunas iniciativas para tomar el codigo y hacerlo algo nuestro. si, casi todo el mundo programa en ingles y lo entiendo, pero nos quedamos muy atraz, los rusos tienen lenguajes de programacion en su propia lengua por ejemplo, se usara mas, se usara menos, pero tienen, simplemente no quiero que se asuma tan pasivamente el uso del ingles en todo y perder lo nuestro. en fin a mi no me molesta que modifiquen y agregen y mejoren sintaxis_es, es mas feliz sere si se hace, lo que no quiero es que se quite o se deje inutil, nada mas

siendo honesto, yo quiero regalar mi codigo, a mi con no morirme hambre estoy bien, y yo soy de los que si conseguiste algo, tienes el derecho a hacer lo que quieras con el. simplemente me ofende un poco la idea que se desagan de esa parte tan concreta del codigo en pro de hacerlo mas legible para un sector en concreto o en pro del rendimiento. que si lo hice fue por algo, simplemente

Está bien, entiendo lo que dices. Ahora bien, no es muy “libre”, en referencia a libertad de hacer algo, que quieras restringir esa parte puntual de tu código. No obstante, estás en la libertad de adaptar o crear tu propia licencia donde se incluya, por ejemplo, de que cualquier aporte o fork debe conservar el español como idioma principal. Algo muy extraño, pero que estás en todo tu derecho de exigir. Para muchos estaría alejándose de la filosofía de libertad, pero creo que es posible

1 me gusta

¿Y si mejor forkeas algún lenguaje de programación para modificarlo y poder crear un lenguaje cervantino? Creo que es lo que mejor se adecúa a tu objetivo, ya que introducir un código obligatorio ninguna licencia lo permite

De lo contrario, podría recomendarte crear tu propia licencia, añadiendo lo que desees (mientras sea legal, claro está)

1 me gusta

honestamente, esa opcion la estuve pensando, pero no me gustaba del todo, pues siento que seria algo “tiranico” y que aparte generare mas rechazo de lo que ya de por si ya causa el codigo con este tipo de sintaxis. en lo que estaba pensando, es quizas, poner el codigo con una licencia gpl, pero simplemente poner un archivo en varios idiomas diciendo algo como “si haras un fork, pues, favor de conservar y seguir dondando soporte a sintaxis_es.h” asi conque la mayoria de las derivadas mantengas esta caracteristica, creo que me conformo