O que constitui uma linguagem de programação e como um copyright é uma linguagem de programação?

12

Decidi criar uma linguagem de programação própria, principalmente por diversão. No entanto, fiquei interessado no aspecto legal de tudo.

Você pode, por exemplo, licenciar programas específicos sob termos específicos. No entanto, como você licenciar um idioma ? Além disso, não me refiro apenas à implementação da linguagem (compilador e VM), mas do próprio padrão. Falta alguma coisa na linguagem de programação?

O que eu gostaria de alcançar com esse licenciamento:

  1. Torne-o completamente FOSS (um idioma pode ser FOSS, ou é a implementação que pode ser FOSS?)
  2. Estabelecer-me como autor (você pode legalmente ser autor de um idioma? Ou, novamente, apenas a implementação?)
  3. Faça com que seja exigido que alguém que implementa minha linguagem me atribua (estilo MIT. Observe que não tenho nenhuma esperança de que alguém realmente faça isso, estou apenas aprendendo.)

Penso que a solução seria licenciar separadamente a VM e o compilador para o meu idioma, como "a implementação oficial", e depois licenciar o documento de design como o próprio idioma .

O que exatamente estou perdendo aqui?

jcora
fonte
10
Re (1): Uma especificação de idioma não é software, portanto o FOSS não se aplica. Além disso, se eu me deparar com uma linguagem cujo autor tentasse isso, para qualquer finalidade, seria extremamente cauteloso (ou seja, provavelmente não a usaria). Ele cheira a dependência de controle, desconfiança e pouco conhecimento de questões legais.
Estou um pouco perdido quanto ao seu objetivo final aqui. Talvez se soubéssemos disso, poderíamos ajudá-lo a preencher as lacunas de como alcançá-lo. Também seria útil saber quem é seu mercado-alvo.
Pd
Espere, como rotular algo que cheira a dependência de controle, @delnan? Ou você estava se referindo a uma especificação de direitos autorais? AFAIK, os direitos autorais não são inerentemente ruins, não precisam ser restritivos.
jcora
11
Acho que vou manter as especificações em domínio público então.
jcora
11
Não sou advogado, mas o copyright de um documento (mesmo que ele especifique um idioma) não está no copyright. Por exemplo, eu uso dicionários com direitos autorais e falo francês sem violá-los.
Basile Starynkevitch 08/12/12

Respostas:

15

Isenção de responsabilidade.IANAL ();

Você não pode copyright uma linguagem de programação, assim como não pode copyright uma linguagem falada. Você pode licenciar uma implementação específica da linguagem e até vender esse compilador como Borland fez com o Delphi por muitos anos.

Atualmente, muitos idiomas têm um BDFL (Ditador Benevolente para a Vida) que determina o que entra no idioma e o que não. Python, Ruby e Perl são todos exemplos disso.

Outros idiomas projetaram padrões oficialmente por uma das várias placas de padrões, normalmente ANSI, ECMA ou ISO. Exemplos incluem C, C ++ e Javascript.

Alguns idiomas caem em áreas mais sombrias devido à politicagem entre empresas. Java é um exemplo porque a Microsoft faz parte de algumas das placas de padrões.

Alguns idiomas mudam de um para outro, normalmente de BDFL para Padronizado, C é um bom exemplo.

Dependendo da especificação da linguagem, alguns gravadores de compilador podem implementar recursos diferentes de maneiras diferentes (CPython vs PyPy, por exemplo) ou adicionar recursos (Microsoft C ++ vs GNU C ++ ou MySQL vs PostGreSQL vs SQL Server)

Engenheiro Mundial
fonte
11
Loglan é um precedente para o status sem direitos autorais de idiomas construídos. Lojban é efetivamente uma reimplementação aberta do Loglan. Por outro lado, a Sun processou a Microsoft por sua implementação em Java do Visual J ++ ...
Jon Purdy
2
@ JonPurdy: Com Java, é uma questão de marca registrada, não de direitos autorais. Veja como o LiveScript se tornou Javascript, enquanto era do interesse combinado da Sun / Netscape, mais tarde a Microsoft lançou o JScript para mostrar semelhança, evitando problemas com marcas registradas, e depois todos concordaram com o ECMAScript como um nome comum.
Pd
11
@ JonPurdy, @ pdr Acho que também houve questões de direito contratual na disputa entre Sun e Microsoft. A Microsoft havia licenciado a tecnologia JVM da Sun e parte da licença concordava em não produzir implementações não-padrão do Java.
Charles E. Grant
11
@pdr Até onde me lembro, havia uma especificação muito precisa do que uma implementação Java deveria fornecer (incluindo alguns milhares de testes que uma implementação deveria passar). A Microsoft foi processada porque eles tinham uma implementação não padrão (provavelmente para bloquear os usuários distribuindo miniaplicativos que funcionariam apenas com o Internet Explorer). Após a estratégia de distribuição de uma implementação não-padrão do Java falhar, a Microsoft criou o C #.
Giorgio
3
@Giorgio - precisamente. O Sol estava contestando foi MSFT chamando a sua linguagem Java ao fazer mudanças significativas (para bloqueá-lo para a plataforma da MSFT), essencialmente eles estavam produzindo uma falsificação Java
Martin Beckett
8

Qualquer tentativa de restringir / controlar / possuir um idioma está fadada ao fracasso. Para que um idioma seja amplamente utilizado, as pessoas devem sentir a) que ele resolve um problema melhor do que um idioma existente e estabelecido eb) sentem-se confortáveis ​​por não estarem repentinamente do lado errado de uma licença / lei terno. Se eles acham que isso é possível, eles irão para outro lugar.

Eu ofereço a Tragédia absoluta de Java, como realizada por Larry Ellison (AKA Oracle) e Google. Ellison realizado um legal em escala global faceplant que realizou 2 coisas:

  1. Ele mostrou ao mundo que processaria qualquer pessoa que achasse que poderia obter dinheiro e
  2. Ele garantiu que desenvolvimentos futuros que ainda não estavam absolutamente vinculados ao Java escolheriam algo além de Java.

O Google não apenas venceu esse processo, mas também eviscerou as patéticas reivindicações de patentes e direitos autorais da Oracle. Depois disso, ninguém que eu conheço vai colocar qualquer fé alguma em qualquer "tecnologia de código aberto", que tem as impressões digitais da Oracle sobre ele (pense: MySQL).

Se você quiser, pode pular os séculos do desenvolvedor por trás do Java e passar a ser ignorado ... basta que todos os desenvolvedores assinem um contrato antes que possam usar sua nova linguagem.

Peter Rowell
fonte
11
+1 por torná-lo perfeitamente claro. Você acertou em cheio com seu segundo ponto sobre Java. Esse foi um fator importante na decisão de continuar usando Java ou criar uma linguagem semelhante. No entanto, eu realmente não espero que as pessoas o usem, como eu disse, é para fins pessoais e educacionais. Mas, gostaria de manter minhas opções em aberto.
jcora
11
Atualização: em maio de 2014, um tribunal federal do circuito reverteu essa decisão e disse que as APIs poderiam ter direitos autorais. eff.org/deeplinks/2014/05/…
ninguém
Mas esse não era o verdadeiro ponto do meu post. Após o desastre total do jogo de poder da Oracle com Java, ninguém em sã consciência e com qualquer conhecimento de história colocará conscientemente esse tipo de nó no pescoço da empresa ou do projeto. De qualquer forma, a reversão pelo Tribunal de Apelação serve apenas para dar um peso ainda maior ao argumento de usar apenas ferramentas e linguagens OSS. É incrível, e profundamente irônico, que um idiota como Larry Ellison seja a pessoa que leva para casa o verdadeiro valor do software Libre / Free, mesmo para a pessoa capitalista ou empresarial mais obstinada.
precisa
2

Você pode escrever uma gramática para o seu idioma e reivindicar seus direitos autorais sobre isso. Claro, isso não o protegeria contra alguém que escrevesse uma gramática diferente que descrevesse o mesmo idioma.

Minha maior pergunta seria "por que você gostaria". Afinal, você provavelmente quer que as pessoas adotem seu idioma. Se outra pessoa alegou ter criado, basta ter uma boa presença na web para permitir que você a chame de mentirosa.

Como outros observaram, se seu objetivo principal é impedir que outros roubem o nameseu idioma, uma marca comercial seria mais útil.

Dominic Cronin
fonte
Escrever uma gramática para o idioma ainda não o protegeria. A única coisa que isso faria é impedir que alguém reescreva a gramática de maneira semelhante a você. Eu poderia escrever uma gramática para o idioma inglês, que não impediria você de publicar no SE.
Gavin Coates
Gavin - escrevi ... "que não o protegeria contra alguém que escrevesse uma gramática diferente que descrevesse o mesmo idioma". Espero que isso esclareça que esses direitos autorais não protegeriam o idioma, apenas a maneira de descrevê-lo. Ainda assim - pode fazer uma pessoa se sentir melhor.
Dominic Cronin
1

Houve respostas diferentes para esta pergunta ao longo do tempo:

Em 2012, uma pergunta semelhante foi respondida "você não pode" no caso Oracle vs Google sobre o uso da API Java no Android, e uma resposta semelhante foi dada no caso da implementação da WPL da linguagem de programação SAS em seu próprio produto. A lógica para essa resposta foi que a interopabilidade entre diferentes implementações de uma linguagem requer cópia da sintaxe de uma linguagem de programação e, portanto, isso deve ser permitido sob as regras de "uso justo".

Em 2014, no entanto, o tribunal de apelações dos EUA decidiu que a resposta legal justa era de fato "sim, você pode", com o objetivo de fornecer interopabilidade (ou não) e de acordo com as regras a critério exclusivo dos direitos autorais originais suporte. Nesta interpretação mais recente, se alguém não quiser que você seja compatível com a linguagem de programação, API ou outra especificação de interface, ele terá todo o direito de impedi-lo.

Em poucas palavras, a partir de 2014 provavelmente é justo supor: sim, uma linguagem de programação (sua sintaxe, estrutura e sequência de construções de linguagem) pode ter direitos autorais

Observe que a lei de direitos autorais está sujeita à interpretação local e que as regras do seu país podem diferir. Em caso de dúvida, consulte um advogado ...

(removeu o restante do argumento, veja o histórico)

Isenção de responsabilidade: IANAL

miraculixx
fonte
Annnddd ... esta decisão foi derrubada. A Oracle apelou, e desta vez os juízes não eram programadores.
jmoreno
@jmoreno obrigado por apontar isso. atualizou a resposta para refletir esse novo desenvolvimento ...
miraculixx 17/05
Só quero dizer, não um advogado ou psiquiatra, apenas um programador, mas a decisão de 2014 parece insana para mim. É um monte de comandos!
Jmoreno 17/05