¿Qué constituye un lenguaje de programación y cómo se protege un lenguaje de programación?

12

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:

  1. Hágalo completamente FOSS (¿puede un lenguaje ser incluso FOSS, o esa es la implementación que puede ser FOSS?)
  2. Establecerme como autor (¿puedes ser legalmente autor de un idioma? O, de nuevo, ¿solo la implementación?)
  3. 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í?

jcora
fuente
10
Re (1): una especificación de idioma no es software, por lo que FOSS no se aplica. Además, si me encontraba con un idioma cuyo autor intentó tal cosa, para cualquier propósito, sería extremadamente cauteloso (es decir, probablemente no lo usaría en absoluto). Apesta a adicción al control, desconfianza y poco conocimiento de asuntos legales.
Estoy un poco perdido en cuanto a cuál es su objetivo final aquí. Tal vez si supiéramos eso, podríamos ayudarlo a llenar los vacíos sobre cómo lograrlo. También sería útil saber quién es su mercado objetivo.
pdr
Espera, ¿cómo el etiquetado de algo apesta a adicción al control, @delnan? ¿O te referías a los derechos de autor de una especificación? AFAIK, el copyright no es inherentemente malo, no tiene que ser restrictivo en absoluto.
jcora
1
Supongo que mantendré la especificación en el dominio público entonces.
jcora
1
No soy abogado, pero los derechos de autor de un documento (incluso si especifica un idioma) no son derechos de autor de un idioma. Por ejemplo, uso diccionarios con derechos de autor y hablo francés sin violarlos.
Basile Starynkevitch

Respuestas:

15

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)

Ingeniero mundial
fuente
1
Loglan es un precedente para el estado no protegido por derechos de autor de los lenguajes construidos. Lojban es efectivamente una reimplementación abierta de Loglan. Por otro lado, Sun demandó a Microsoft por su implementación Visual J ++ de Java ...
Jon Purdy
2
@ JonPurdy: con Java, es un problema de marca registrada, no un problema de derechos de autor. Mire cómo LiveScript se convirtió en Javascript, mientras estaba en los intereses combinados de Sun / Netscape, luego Microsoft lanzó JScript para mostrar similitud mientras evitaba problemas de marcas registradas, y luego todos aceptaron ECMAScript como un nombre común.
pdr
1
@ JonPurdy, @ pdr Creo que también hubo problemas de derecho contractual en la disputa entre Sun y Microsoft. Microsoft había licenciado la tecnología JVM de Sun y parte de la licencia acordó no producir implementaciones no estándar de Java.
Charles E. Grant
1
@pdr Hasta donde puedo recordar, había una especificación muy precisa de lo que debería proporcionar una implementación de Java (incluyendo algunos miles de pruebas que una implementación debería pasar). Microsoft fue demandado porque tenían una implementación no estándar (probablemente para bloquear a los usuarios mediante la distribución de applets que solo funcionarían con Internet Explorer). Después de que la estrategia de distribuir una implementación no estándar de Java fallara, Microsoft pasó a crear C #.
Giorgio
3
@Giorgio, precisamente. A lo que Sun se oponía era a que MSFT llamara a su lenguaje Java mientras realizaba cambios significativos (para bloquearlo en la plataforma de MSFT) esencialmente estaban produciendo un Java falsificado
Martin Beckett
8

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:

  1. Le mostró al mundo que demandaría a cualquiera de quien creyera que podía obtener dinero, y
  2. Garantizó que los desarrollos futuros que no estuvieran absolutamente vinculados a Java elegirían otra cosa que no sea Java.

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.

Peter Rowell
fuente
1
+1 por dejarlo perfectamente claro. Golpeaste el clavo con tu segundo punto sobre Java. Este ha sido un factor importante para decidir si seguir usando Java o crear un lenguaje similar yo mismo. Sin embargo, realmente no espero que la gente lo use, como he dicho, es para fines personales y educativos. Pero, me gustaría mantener abiertas mis opciones.
jcora
1
Actualización: en mayo de 2014, un tribunal de circuito federal revocó esa decisión y dijo que las API podrían tener derechos de autor. eff.org/deeplinks/2014/05/…
nadie
Pero ese no era el verdadero punto de mi publicación. Después de la debacle total del juego de poder de Oracle con Java, nadie en su sano juicio, y con ningún conocimiento de la historia, sabiamente colocará este tipo de soga alrededor del cuello de su empresa o proyecto. En todo caso, la revocación por parte del Tribunal de Apelaciones solo sirve para dar mayor peso al argumento de usar solo herramientas e idiomas OSS. Es sorprendente, y profundamente irónico, que un hoyo como Larry Ellison sea la persona que lleve a casa el verdadero valor del software Libre / Free incluso para el capitalista o el hombre de negocios más testarudo.
Peter Rowell
2

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 namesu idioma, una marca registrada sería más útil.

Dominic Cronin
fuente
Escribir una gramática para el idioma aún no lo protegería. Lo único que haría es evitar que alguien más vuelva a escribir la gramática de manera similar a usted. Podría escribir una gramática para el idioma inglés, pero eso no te impediría publicar en SE.
Gavin Coates
Gavin: escribí ... "eso no lo protegería contra alguien que escriba una gramática diferente que describa el mismo idioma". Espero que esto aclare que ese derecho de autor no protegería el idioma, solo esa forma de describir el idioma. Aún así, puede hacer que una persona se sienta mejor.
Dominic Cronin
1

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

miraculixx
fuente
Annnddd ... esta decisión fue revocada. Oracle apeló, y esta vez los jueces no eran programadores.
jmoreno
@ jmoreno gracias por señalar esto. actualizó la respuesta para reflejar este nuevo desarrollo ...
miraculixx
Solo quiero decir, no un abogado o un psiquiatra, solo un programador, pero el fallo de 2014 me parece una locura. ¡Es un montón de comandos!
jmoreno