He decidido crear un lenguaje de programación propio, principalmente solo por diversión. Sin embargo, me interesé en el aspecto legal de todo.
Puede, por ejemplo, licenciar programas específicos bajo términos específicos. Sin embargo, ¿cómo haces para licenciar un idioma ? Además, con eso no solo me refiero a la implementación del lenguaje (compilador y VM), sino al estándar en sí. ¿Hay algo más en un lenguaje de programación que me falta?
Lo que me gustaría lograr con tales licencias:
- Hágalo completamente FOSS (¿puede un lenguaje ser incluso FOSS, o esa es la implementación que puede ser FOSS?)
- Establecerme como autor (¿puedes ser legalmente autor de un idioma? O, de nuevo, ¿solo la implementación?)
- Hacer que cualquier persona que implemente mi lenguaje deba atribuirme (estilo MIT. Tenga en cuenta que no tengo ninguna esperanza de que alguien realmente lo haga, solo estoy aprendiendo).
Creo que la solución sería licenciar por separado la VM y el compilador para mi idioma, como "la implementación oficial", y luego licenciar el documento de diseño como el propio lenguaje .
¿Qué es exactamente lo que me estoy perdiendo aquí?
Respuestas:
Descargo de responsabilidad.IANAL ();
No puede proteger los derechos de autor de un lenguaje de programación más de lo que puede proteger un lenguaje hablado. Puede licenciar una implementación particular del lenguaje e incluso vender ese compilador de la misma forma que Borland lo hizo con Delphi durante muchos años.
Muchos idiomas tienen hoy un BDFL (Dictador Benevolente para la Vida) que determina qué entra en el idioma y qué no. Python, Ruby y Perl son ejemplos de eso.
Otros idiomas tienen estándares diseñados oficialmente por una de varias placas de estándares, típicamente ANSI, ECMA o ISO. Los ejemplos incluyen C, C ++ y Javascript.
Algunos idiomas caen en áreas más turbias debido a la política entre empresas. Java es un ejemplo porque Microsoft se sienta en algunos de los paneles de estándares.
Algunos lenguajes se mueven de uno a otro, generalmente de BDFL a estandarizado, C es un buen ejemplo.
Dependiendo de la especificación del lenguaje, algunos escritores de compiladores pueden implementar diferentes características de diferentes maneras (CPython vs PyPy, por ejemplo) o agregar características (Microsoft C ++ vs GNU C ++ o MySQL vs PostGreSQL vs SQL Server)
fuente
Cualquier intento de restringir / controlar / poseer un idioma está condenado al fracaso. Para que un idioma se use ampliamente, las personas deben sentir a) que resuelve un problema mejor que un idioma establecido existente, yb) se sienten cómodos de que de repente no estarán en el extremo equivocado de una licencia / ley traje. Si piensan que eso es posible, irán a otro lado.
Ofrezco la tragedia absoluta de Java, realizada por Larry Ellison (también conocido como Oracle) y Google. Ellison realizó un faceplant legal a escala global que logró 2 cosas:
Google no solo ganó esta demanda, sino que destripó las patéticas reclamaciones de patentes y derechos de autor de Oracle. Después de esto, nadie que yo conozca colocará ninguna fe en absoluto en cualquier "tecnología de código abierto" que tiene las huellas digitales de Oracle en él (piensen en: MySQL).
Si lo desea, puede omitir los siglos de desarrollo detrás de Java e ir directamente a ser ignorado ... solo haga que todos los desarrolladores firmen un contrato antes de que puedan usar su nuevo lenguaje.
fuente
Puede escribir una gramática para su idioma y hacer valer sus derechos de autor sobre eso. Por supuesto, eso no lo protegería contra alguien que escriba una gramática diferente que describa el mismo idioma.
Mi mayor pregunta sería "¿por qué quieres?". Después de todo, probablemente quieras que la gente adopte tu idioma. Si alguien más afirmó haberlo creado, simplemente tener una buena presencia en la web sería suficiente para que pueda llamarlo mentiroso.
Como otros han señalado, si su objetivo principal es evitar que otros roben
name
su idioma, una marca registrada sería más útil.fuente
Ha habido diferentes respuestas a esta pregunta a lo largo del tiempo:
En 2012, se respondió una pregunta similar "no se puede" en el caso de Oracle vs Google sobre el uso de la API de Java en Android, y se dio una respuesta similar en el caso de la implementación de WPL del lenguaje de programación SAS en su propio producto. El fundamento de esta respuesta fue que la interopabilidad entre diferentes implementaciones de un lenguaje requiere la copia de la sintaxis de un lenguaje de programación, y por lo tanto, debería permitirse según las reglas de "uso justo".
En 2014, sin embargo, el tribunal de apelaciones de los Estados Unidos decidió que la respuesta legal justa era "sí, usted puede", con el argumento de proporcionar interopabilidad (o no), y bajo qué reglas queda a la sola discreción del copyright original. poseedor. En esta interpretación más reciente, si alguien no quiere que seas compatible con su lenguaje de programación, API u otra especificación de interfaz, tiene todo el derecho de detenerte.
En pocas palabras, a partir de 2014 probablemente sea justo suponer: sí, un lenguaje de programación (su sintaxis, estructura y secuencia de construcciones de lenguaje) puede tener derechos de autor
Tenga en cuenta que la ley de derechos de autor está sujeta a interpretaciones locales y que las reglas en su país pueden diferir. En caso de duda consulte a un abogado ...
(eliminado el resto del argumento, ver historial)
Descargo de responsabilidad: IANAL
fuente