É possível reescrever todas as linhas de um projeto de código aberto de uma maneira ligeiramente diferente e usá-lo em um projeto de código fechado?

122

Há algum código que é GPL ou LGPL que estou pensando em usar para um projeto do iPhone.

Se eu pegasse esse código (JavaScript) e o reescrevesse em um idioma diferente para uso no iPhone, isso seria um problema legal?

Em teoria, o processo que aconteceu foi que eu passei por cada linha do projeto, aprendi o que estava fazendo e depois reimplementei as idéias em um novo idioma.

Para mim, parece que é como aprender a implementar algo, mas depois reimplementá-lo separadamente da licença original. Portanto, você copiou apenas o algoritmo, o qual, sem dúvida, você poderia ter aprendido em outro lugar que não o projeto original.

A licença cobre a implementação específica ou o algoritmo também?

EDITAR------

Realmente feliz em ver este tópico criar uma boa conversa. Para dar um pouco mais de apoio ao projeto, o código envolvido faz algum tipo de análise de áudio. Acredito que não é trivial aprender ou implementar, embora eu estivesse preparado para iniciar essa tarefa (estou no nível em que posso implementar um algoritmo FFT , e isso iria além disso.) script LOC baixo , então não achei que seria muito difícil fazer uma porta reta.

Eu realmente gosto da idéia de relançar minha porta e usá-la no aplicativo. Não vejo nenhum problema com isso, e seria uma ótima maneira de devolver algo à comunidade.

Eu acrescentaria uma linha sobre não querer discutir as questões morais, mas estou muito feliz por não ter feito isso, pois parece ter disparado um pouco o debate.

Ainda me sinto um pouco estranho ao usar o código-fonte aberto para aprender. Isso significa que qualquer coisa que se aprende em um projeto de código aberto não pode ser usada em um projeto de código fechado? E quanto tempo depois ou diferente de uma implementação deve ser para não ser considerada violação da licença? Murky!

EDIT 2 --------

Questão a seguir

Chris Barry
fonte
27
Eu realmente gostaria de chegar ao fundo de outra pergunta: "Se você aprende um algoritmo em um programa de código aberto e reimplementa o algoritmo, violou a licença?" Estou perguntando isso do ponto de vista jurídico, não moral. Mas, mesmo do ponto de vista moral, isso não é uma forma legítima de aprendizado? Não podemos usar nenhum aprendizado obtido em projetos de código aberto? Isso parece ir contra o ponto da própria GPL?
Chris Barry
8
@ ótico O problema é que você deseja traduzi-lo linha por linha, o que claramente o torna um trabalho derivado, como uma tradução entre idiomas humanos. A ideia em si não é protegida por direitos autorais, mas pode estar coberta por uma patente. Mas cuidado, IANAL.
starblue
3
Comentaristas : os comentários destinam-se a buscar esclarecimentos, não a discussões prolongadas. Se você tiver uma solução, deixe uma resposta. Se sua solução já estiver publicada, faça um voto positivo. Se você quiser discutir esta questão com outras pessoas, use o bate-papo . Veja o FAQ para mais informações.
2
@optician O sistema Stack Exchange não é um fórum de discussão, em que cada postagem é um tópico que pode mudar de direção ao longo do tempo: se você tiver outra pergunta com a qual gostaria de obter ajuda, faça outra pergunta. Caso contrário, fique à vontade para editar sua pergunta para esclarecer se as respostas que você recebeu não tratam completamente do seu problema original.
2
Estou votando para encerrar esta questão como fora de tópico, porque se trata de questões legais.
Robert Harvey

Respostas:

257

Eu não sou um advogado. Este não é um conselho legal.

Dito isto, pegar todas as linhas de um aplicativo e alterá-lo levemente com o único objetivo de burlar a lei de direitos autorais está flagrantemente, obviamente, criando um trabalho derivado sem defesa plausível. Mesmo o juiz e o júri mais procurados definitivamente encontrarão contra você se você for arrastado para o tribunal.

Apenas como comparação: as empresas que precisam reescrever algo para interoperabilidade geralmente contratam diferentes grupos de pessoas para entender a fonte e criar a porta ("implementação de sala limpa"), para que ninguém possa acusá-las de criar uma derivada derivada. trabalhos. O que você propõe é exatamente o oposto.

Kilian Foth
fonte
25
Eu gostaria de poder dar-lhe +10 ...
Marjan Venema
5
Isso é "se" já chegou ao tribunal.
QueueHammer
5
Se o software for bem-sucedido, provavelmente acabará no tribunal em algum momento.
Justin C
4
@ ótico: Depende de quão perto você está da recriação do original, na verdade, e esse é o tipo de pergunta que você precisa de um advogado para responder.
David Thornley
5
@DavidStone Você tem isso ao contrário. Você deve entender que um algoritmo lógico e uma expressão específica de um algoritmo no código são legalmente separados; somente a expressão é protegida por direitos autorais. O grupo que está realizando a reimplementação não tem contato com a expressão original do algoritmo (eles só veem a documentação interna sobre o algoritmo lógico) e sua expressão escrita provavelmente será diferente da expressão original, portanto, é improvável que eles possam violar direitos autorais. No entanto, eles podem violar uma patente facilmente, pois seu algoritmo lógico é idêntico ao original.
Apsillers
72

De acordo com Betsy Rosenblatt do Copyright Basics da Harvard Law School :

O que constitui violação de direitos autorais?

Sujeito a certas defesas, é violação de direitos autorais para alguém que não seja o autor fazer o seguinte sem a permissão do autor:

  1. copiar ou reproduzir o trabalho
  2. crie um novo trabalho derivado do trabalho original (por exemplo, traduzindo o trabalho para um novo idioma, copiando e distorcendo a imagem ou transferindo o trabalho para um novo meio de expressão)
  3. vender ou doar o trabalho, ou uma cópia do trabalho, pela primeira vez (mas uma vez que o autor o tenha feito, o direito de vender ou doar o item será transferido para o novo proprietário. Isso é conhecido como "o primeiro doutrina de venda ": uma vez que um proprietário dos direitos autorais tenha vendido ou cedido a obra ou uma cópia dela, o destinatário ou o comprador poderá fazer o que bem entender com o que possui.) 17 USC §109 (a).
  4. executar ou exibir o trabalho em público (este direito não se aplica à arte visual) sem a permissão do proprietário dos direitos autorais. 17 USC §106. Também é violação de direitos autorais violar os "direitos morais" de um autor, conforme definido por 17 USC 106A. Os direitos morais são discutidos neste local.

Parece-me que você violaria o item 2 acima.

No entanto, acho que a terminologia é importante aqui. Você disse: "Se eu pegasse esse código (javascript) e o reescrevesse em um idioma diferente para uso no iPhone, isso seria uma questão legal?" (ênfase minha). Reescrever algo pode ou não ser diferente de copiar. Por exemplo, se você olhou para a Mona Lisa, entrou no seu próprio estúdio e pintou o que lembra, parece-me que você está criando um trabalho original que é sua expressão de como você percebeu o original. Se, no entanto, você tinha uma cópia da Mona Lisa em seu estúdio, e você pintou uma cópia, e não o que você lembra, então eu acho que você está definitivamente copiando.

Da mesma forma, se você usa o MS Word, e talvez até mesmo se você analisa parte do código, e depois escreve seu próprio processador de texto com semelhanças funcionais, acredito que há casos em que foi decidido que "olhe & feel "não tem direitos autorais. (Isso não diz nada sobre patentes, é claro.)

Você provavelmente deve perguntar a um advogado (como eu não sou um).

Minha opinião pessoal é que uma "porta" é um trabalho derivado e, portanto, você deve liberar o código da porta na mesma licença.

Scott Whitlock
fonte
1
há também a questão de provar isso. Se você analisou o código-fonte do Word, então escreveu seu próprio processador de texto ... será difícil provar que não copiou nada.
Gbjbaanb
6
@gbjbaanb: Cabe à Microsoft provar que você fez , e não o contrário, na maioria dos países. Não que isso importe, porque se a Microsoft o processa, você está ferrado, a menos que consiga uma grande empresa para levá-lo de graça. :-) E se você tivesse acesso ao código-fonte Word, chances são muito boas que você já assinou algo dizendo que não iria escrever nada para competir com ele de qualquer maneira ...
TJ Crowder
3
Em vez de escrever 'aqui', é melhor nomear o autor: 'Betsy Rosenblatt, Harvard Law School'.
Nicolai Reuschling
3
@Nicolai Reuschling: lol :)
Scott Whitlock
4
@TRiG: "Eu não sei por que você acha isso engraçado." - Talvez seja porque você não tem senso de ironia. ;)
Scott Whitlock
55

Não sou advogado, isso não é aconselhamento jurídico e, se você confiar no que digo em qualquer tipo de empreendimento duvidoso (1), você é um idiota e (2) eu me isento de toda responsabilidade. Isto é o que eu ouvi e li ao longo dos anos de pessoas que parecem saber.

Os juízes não jogam jogos "em teoria". Eles não gostam de pessoas que inventam maneiras de distorcer a lei que talvez sejam aceitáveis ​​em termos de análise lógica, mas que são contrárias à intenção óbvia e como os juízes governaram no passado. Nunca tente ser esperto demais com a lei se houver alguma chance de você terminar em um tribunal defendendo sua interpretação.

É geralmente aceito que pegar um romance e fazer um filme dele ou traduzi-lo para outro idioma está criando trabalhos derivados, e essas são transformações muito maiores do que você está falando e exigem muito mais criatividade. Veja isso como exemplos; um juiz certamente o fará.

Nos EUA, houve casos em que a cópia de um programa de maneira mais vaga do que você está falando foi considerada uma infração. Nos EUA, espere que eles sejam usados ​​como precedentes.

Em outras palavras, você iniciará uma empresa comercial em uma base que será considerada ilegal se alguém se preocupar em procurar. Não é uma boa ideia.

Além disso, se você tem algum respeito pela idéia de direitos autorais ou qualquer controle que um autor possa ter sobre o que ele publica, você está sendo hipócrita. O código fonte foi disponibilizado para uso em determinadas condições. Você está violando a lei e a intenção expressa do autor.

Agora, os algoritmos não podem ter direitos autorais. Nos EUA, os tribunais decidiram que é impossível registrar uma ideia em direitos autorais, e qualquer coisa normalmente protegida por direitos autorais que seja a única maneira de expressar algo não é protegida por direitos autorais. Portanto, você certamente pode usar o algoritmo.

Existe uma maneira de copiar um algoritmo à prova de direitos autorais: a abordagem "sala limpa", em que uma pessoa ou grupo estuda o código-fonte e cria uma descrição do algoritmo (com o mínimo possível de detalhes de implementação) e outra pessoa ou O grupo escreve um novo código sem fazer referência à fonte original. Quanto mais perto você chegar disso, mais seguro estará.

Você também pode considerar que, ao postar a pergunta aqui, publicou uma possível intenção de violar direitos autorais, de uma forma que provavelmente possa ser rastreada até você, se alguém tiver o direito legal de fazê-lo (como a descoberta em um caso civil ou uma investigação policial simples, se for um caso criminal).

David Thornley
fonte
18
+1 em "Você também pode considerar que, ao postar a pergunta aqui, publicou uma possível intenção de violar direitos autorais".
6
+1 Para a abordagem de "sala limpa" - sempre me perguntei como isso funcionava.
dman
Acabei de publicar no fórum dos autores qual é a situação e publicarei os resultados aqui.
Chris Barry
Como um algoritmo é uma idéia e um programa não é uma idéia? Ou, como um programa não é uma coleção de algoritmos?
Scooter
16

Por que você não apenas abriu sua porta de código-fonte e deixou o resto do seu projeto fechado?

Para citar outra resposta minha:

O código aberto funciona, porque é uma comunidade. Porque é mútuo. Você não ganha dinheiro escrevendo código-fonte aberto. Você ganha dinheiro consumindo código-fonte aberto. Então, por que você escreve código-fonte aberto? Para devolver algo.

Mas de um ponto de vista mais pragmático:
se o código que você portou é realmente tão útil que você acha que deveria protegê-lo para manter uma vantagem (o que você não tem, porque as pessoas que usam o Appcelerator podem usá-lo imediatamente), haverá ser uma porta de código aberto mais cedo ou mais tarde. Ele será mantido por várias pessoas, será usado e, portanto, testado por ainda mais pessoas e será refinado ainda mais para incorporar os princípios promovidos pelo idioma de destino e para melhor interagir com as estruturas predominantes em sua plataforma. Mais cedo ou mais tarde, seu código parecerá uma porcaria comparado a ele.
O código aberto é, de fato, a sua chance de ficar por dentro. É ganha-ganha. Se você tiver sorte, receberá até mantenedores para esse código e poderá se concentrar na lógica do aplicativo, que é o que realmente torna seu produto único.

back2dos
fonte
1
+1 Alguns dos melhores códigos disponíveis são o Código Aberto. Mas posso ver como a adição de código GPL a um projeto comercial pode ser mais difícil quando isso significa código aberto para todo o produto.
Alex Jasmin
2
O código GPL é proibido nos aplicativos iOS pelos termos de licenciamento da Apple, pelo que entendi.
Andrey Tarantsov
2
Bem, parece que uma cláusula no ToS da Apple contradiz uma cláusula na GPL; portanto, embora não seja proibido, elas parecem incompatíveis.
Vatine 26/06
1
Se os ToS da Apple contradizerem a GPL, possuir os direitos autorais permitirá liberá-los com mais licenças, uma vez com uma licença compatível com o Apple ToS, mas também com a GPL.
Pieter B
8

Eu não sou advogado, nem jogo na TV.

Mas acho que a questão aqui é derivação. Se o seu novo trabalho é derivado do trabalho da GPL ou LGPL, esse trabalho deve seguir os requisitos da GPL ou LGPL. Seu trabalho será claramente derivado, mesmo se você o reescrever completamente, linha por linha, em outro idioma.

TJ Crowder
fonte
Sim, mas isso significa que você não poderá mais usá-lo novamente? O fato de você ter sido implementado em outro projeto o proíbe de usar esse algoritmo, a menos que você possa provar que teve o conhecimento necessário para criar o algoritmo por meio de outros caminhos de aprendizado?
Chris Barry
4
Eu também não sou advogada, então estou apenas adivinhando. Eu não usaria as palavras "derivadas de" se você escrevesse sua própria implementação de um algoritmo em outro idioma. Eu não acho que a GPL foi criada como um sistema de patente secreta.
Captain Sensible
1
@ Sevev - você deve marcar o termo "Covert Patent System" e patentear o conceito.
Mayo '
2
Algoritmos não são protegidos por direitos autorais. Para os fins da lei de direitos autorais, a repetição de um algoritmo não é acionável. O ponto é se o seu programa é derivado textualmente ou não do original; isso significa que nomes de variáveis, layout de código etc. (A lei de patentes, no entanto, pode ou não se aplicam até mesmo para algoritmos.)
Kilian Foth
1
A licença cobre a implementação e não o próprio algoritmo. Portar a implementação para outro idioma é um trabalho derivado da mesma maneira que seria portar Harry Potter para o espanhol. Você é livre para implementar o algoritmo à sua maneira. Eu recomendaria não copiar / pastoso e aprender o algoritmo que você deseja implementar e escrever sua própria versão a partir do zero. IANAL.
Dave Rager
5

Como outros dizem, é provável que seja um trabalho derivado e, portanto, viole diretamente os termos da GPL, se você optar por fazê-lo "separado da licença original" (presumo que isso significa que você removeria a GPL e usaria outra coisa, mesmo de código fechado) .

Mesmo se parecer "legal", é claramente imoral . O autor de um software da GPL escolheu uma licença que estende as liberdades para trabalhos derivados. Seja uma coisa boa ou ruim, é a intenção do autor , e você deve respeitar isso . Eles forneceram o código para ler e modificar, bifurcar e o que for, apenas pedindo em troca que você não altera as condições. Também é provável que você também não pagasse pelo próprio software.

Sei que o dinheiro é difícil, mas dessa forma, quando você pinta sua ideia, é roubar. Claro, você poderia ter aprendido esse algoritmo ou qualquer detalhe de implementação de outra fonte, mas não aprendeu, como disse você mesmo.

Se a moralidade não lhe interessa, lembre-se de que, dada a natureza cinza da legalidade do que você está fazendo (ou prestes a fazer), é muito possível que os autores originais entrem em contato com a Apple devido a uma violação de direitos autorais. Até agora, a Apple foi rápida em remover o software que infringia a GPL. Outra possibilidade é uma ação judicial.

Se eu fosse você, consideraria a GPL meu próprio trabalho (isso não é uma coisa tão ruim!) Ou obter o conhecimento por outros meios.

Tamás Szelei
fonte
Parece que existem aplicativos que são GPL (app wordpress?). Você está dizendo que não é bom usar um projeto de código aberto para aprender um algoritmo?
Chris Barry
Não, não estou dizendo isso. Eu estava me referindo à idéia do OP de traduzir as mesmas linhas para uma linguagem de programação diferente. Agora, onde termina a derivação e onde começa o trabalho original? Essa não é uma pergunta fácil, mas tenho certeza de que apenas reimplementar o mesmo algoritmo sem modificações é um trabalho derivado.
Tamás Szelei
Sim, não é uma pergunta fácil. Também seria interessante saber quanta mudança seria suficiente para não ser ilegal. Mudando nomes viáveis, espaço em branco? Parece meio bobo, pois essas coisas seriam tão fáceis de mudar, especialmente se você entender o código e assim criar bons nomes alternativos.
Chris Barry
BTW, o código está bem comentado, por isso é muito fácil entender o que está fazendo.
Chris Barry
Bem, basta usar o bom senso. Você, como programador, acha que alterar o espaço em branco e os nomes de variáveis ​​é uma mudança suficiente? Por fim (em casos extremos realistas), o tribunal decidirá sobre a legalidade.
Tamás Szelei
5

Que tal tentar fazer a coisa certa e não roubar as idéias de alguém? Você pode simplesmente enviar um email ao criador do código e perguntar se você pode basear partes do seu projeto fora delas. Muitas pessoas não teriam problemas com isso. Se eles têm algum problema com isso, mesmo deixando de lado questões legais, por que você deseja manchar sua reputação como profissional na comunidade? O fato de essa pergunta ter sido formulada mais ou menos como "O que eu posso fazer com que?", Em vez de "O que devo fazer?" é um pouco preocupante.

Bottom line, pergunte à pessoa (ou pessoas) que escreveu o código .

Morgan Herlocker
fonte
2
O autor foi convidado e vou postar os resultados aqui.
Chris Barry
5

Também não sou advogado. Se você está preocupado se isso é um problema legal, provavelmente você nem deveria estar fazendo essa pergunta e apenas escrevendo a sua.

Minha opinião pessoal sobre o assunto:

Se você está pegando o código javascript e reescrevendo-o em um idioma diferente, isso é chamado de portabilidade e é considerado um trabalho derivado. Se você está escrevendo sua própria versão do software e usando o código javascript como referência para aprender como certos algoritmos funcionam, provavelmente está bem.

Eu erraria ao pedir um advogado.

Como um adendo , a lei de direitos autorais permite que você basicamente faça NADA [*] com o código-fonte publicado, além de lê-lo. A licença sob a qual o proprietário dos direitos autorais liberou permite certos privilégios adicionais não fornecidos pela lei de direitos autorais. Tomar e usar o código de maneiras diferentes da permitida na licença não é diferente de pegar e usar quaisquer trabalhos protegidos por leis de direitos autorais sem a permissão do autor.

[*] Com exceções para uso justo.

Dave Rager
fonte
1
Se é GPL, você pode fazer mais do que lê-lo. Você pode fazer trabalhos derivados, desde que esses derivados também sejam GPL.
Zhehao Mao
Sim, isso está correto.
Dave Rager
4

Não. Não é ético. É quase certamente ilegal. E se eu revisasse um aplicativo de emprego de alguém que fizesse isso, ele seria arquivado com extremo preconceito.

Paul Nathan
fonte
Então você está dizendo que não é ético aprender a implementar algo de um projeto de código aberto?
Chris Barry
4
@ Chris: Não é ético criar um trabalho derivado de um projeto de código aberto e lançá-lo para venda, contrariando a intenção do autor, conforme demonstrado pela licença. Se você não pode aderir à licença e, em vez disso, está rodeando-a ... ew.
Paul Nathan
1
Não estou tentando evitar a licença (por que fiz a pergunta), mas me perguntei qual seria a situação em questões como essa. Existe um limite de tempo ou quantidade de diferença entre dois trabalhos que o impedirão de ser um trabalho derivado? Caso contrário, parece que não se pode usar o conhecimento aprendido com o estudo do código-fonte aberto?
Chris Barry
não há como impedir que você venda um aplicativo com base no código-fonte aberto. De fato, a definição de código aberto (dada pela Open Source Initiative) permite explicitamente isso. Mas você precisa cumprir a licença, que é o dilema do OP. Os termos da App Store e da GPL entram em conflito, que é o problema aqui.
Martin Vilcans
2

Sempre codifique como se o cara que acabasse mantendo o seu código fosse um psicopata violento que sabe onde você mora. ~ Martin Golding

Eu não sou advogado, então não vou responder como um. Além disso, muitas outras pessoas que não são advogados já se manifestaram sobre as implicações legais da sua ideia. E eu vou pular o debate de moralização / ética.

Se eu fosse você, ficaria mais preocupado com as ramificações como desenvolvedor. É uma coisa de respeito. Auto-respeito, especialmente.

Claro, todos nós caçamos por "Como você implementou {em {especificação}?" de tempos em tempos. Foi daí que Stack veio, amirita? E é assim que todos nós encontramos aqui, certo? Não é disso que estou falando, porque não é disso que você está falando.

Se eu combinasse o golpe de gênio + esforço heróico = resultado que valha a pena apresentar à comunidade de desenvolvedores como uma oferta de código aberto e, em primeiro lugar, e as pessoas gostassem o suficiente para usá-lo, eu cairia na bajulação. Eu seria um grande momento. Como John Reisig, ou Mark Story. Pequena ol mim. E, em seguida, apareceu um idiota e listou minha contribuição com itens de linha para que eles possam oferecer comercialmente ou nativamente em seu aplicativo comercial. Cair morto.

Código é como caligrafia. Você não pode mudar um aplicativo maior que uma caixa de fósforos significativamente bastante que outro dev legítimo não poderia diff os dois lado a lado e dizer: "Espere um minuto ..." Como um desenvolvedor, eu ficaria muito envergonhado pela possibilidade de que os meus colegas , meus colegas, pessoas que eu respeito e cujo respeito eu desejo, descobririam que eu levantei o código de alguém. Eu seria uma piada. Porque isso é uma cópia épica de pasta de macarrão infantil ks. Você realmente deseja deslegitimar-se aos olhos de seus colegas? O código de jacking é uma boa maneira de começar.

E, como desenvolvedor, considere o seguinte: se esse era o meu aplicativo, e eu descobri que você o roubou de tal forma que ficaria preocupado em ser processado, e se eu decidir o inferno em processá-lo, você está fazendo uma pilha de dinheiro de qualquer forma, graças ao meu código, por que não devo bater em você onde dói, talvez recuperar um pouco disso? Como você SABE que eu não sou um adolescente ou possuo um temperamento e um conjunto assustador de habilidades? Saia do meu caminho para jogar r00 [no ur b0xen, por assim dizer. Desde que jacking meu aplicativo me mostraria que eu> você (base: eu poderia escrever o que você poderia apenas jack). Não seria a primeira vez.

OpenSorceress
fonte
2
Eu realmente gosto desta resposta. Acho que o problema é se você pode usar o código como um ponto de aprendizado e depois implementá-lo. Eu acho que é sobre um script 200 ~ LOC, então não é tão complicado. Eu realmente queria começar com um exemplo de trabalho para meus aprendizados e, por isso, parecia fazer sentido começar a partir daí. Se eu escrevesse a coisa toda no código psudo e GPL tivesse minha porta, isso me colocaria em uma posição razoável? Eu realmente acho que o título do post provocou o debate mais do que eu esperava.
Chris Barry
Re: provocando debate, considere a natureza da pergunta: um profissional despeja seu coração e alma em seu ofício, quer ela queira ou não. Horas do meu tempo, baldes de suor e lágrimas de sangue porque a natureza do software é ser uma fera. Além disso, nosso trabalho é tão difícil que contribuições verdadeiramente excelentes para o código aberto (js libs, frameworks php, etc.) - neste ponto, quem entre nós não depende do código aberto para manter a cabeça acima da água, profissionalmente ? Portanto, essa pergunta como essa é profundamente pessoal para todos nós, se a percebemos ou não.
OpenSorceress
Dito isso, aprendi a maior parte do que sei de assistentes de código aberto como John Reisig e Mark Story e sua turma de gênios. JQuery é meu amiguinho. CakePHP é meu pão e manteiga. Não há nada de errado nisso. Daí a diferença entre levantar e portar. É disso que estamos falando quando dizemos: estamos nos ombros de gigantes.
OpenSorceress
0

Você não pode fazer trabalho derivado de trabalho derivado de trabalho derivado ... e esperar que não seja trabalho derivado. Pode tornar-se irreconhecível, mas isso é outra coisa. E você pode começar de qualquer texto e, por série de alterações, obter qualquer texto (por exemplo, remova o primeiro, insira o segundo), para que isso não seja possível. Portanto, não é importante se algo é possível, mas se realmente aconteceu (apenas o impossível obviamente não aconteceu)

Falando moralmente: aprender com qualquer coisa que você possa (legalmente) obter é bom, mas você deve reconhecer fontes. o resto é legalidade.

IANAL, mas não acho que cometi algo errado, se: 1) aprendi com a implementação de código aberto 2) Implemente o mesmo algoritmo (mesmo na mesma linguagem) fazendo isso de fato, grandes porções naturalmente se tornarão totalmente diferentes, e algumas serão ser bem parecido. Se essas partes semelhantes são coisas em que ambos os lados seguiram a mesma prática de codificação e, portanto, não podem ser diferentes, essas partes não são protegidas por direitos autorais. Por exemplo. se a classe tiver dois campos String privados e eles tiverem getters e setters, o interessante é que essa classe tem duas propriedades de leitura / gravação, não implementações de getters e setters.

user470365
fonte
0

Se você reescrever cada linha individualmente, poderá ou não estar "copiando" as linhas.

Mas você está copiando literalmente a ordem, a estrutura geral e a inclusão das linhas. Em outras palavras, o tipo de coisa que torna o trabalho um "todo".

Você está copiando a parte que diz "esta linha deve ir aqui, esta linha deve ir lá". Essa é uma grande parte do algoritmo geral.

Além disso, quando um projeto é iniciado, ninguém sabe o que incluir, o que deve ser considerado mais ou menos importante, como estruturar e compor os algoritmos. Essa informação precisa ser produzida e projetada em algum momento. Mas você não precisaria, porque estaria "copiando".


Como um exemplo:

Se eu tiver um conjunto {a, b, c, d, e, f}.

Eu posso criar uma lista ordenada deles, [f, e, c, b, d, a]. Você deve dizer que adicionei algumas informações à lista, conhecidas como pedidos , que não estavam presentes no conjunto não ordenado. Dependendo do tamanho da lista, essas informações podem ser muito específicas e difíceis de apresentar.

Ben Jones
fonte
-1

É como qualquer outra coisa - você não pode desaprender o que aprendeu, viu, leu ... mas o que você pode controlar é como o usa ...

Duas coisas sobre esse assunto -

  1. Como a maioria das estipulações de licenças para o Código-fonte Aberto ... fazer um centavo é totalmente legal, torná-lo "pseudo" - fechado é legal - mas a questão é 'crédito'. Eu comprei MUITOS scripts que possuem 'créditos' (URLs do blog, código do SO usado ... etc.), mas o problema é que você está abertamente (sem esconder) dando os creds / elogios às criações de alguém (novamente, as pessoas não se importam se você faz isso ... muitas vezes as pessoas NÃO dão crédito (violando as estipulações do tipo GPL) por medo de que as pessoas percebam que podem obtê-lo em outro lugar ... mas se o seu código for aberto dando crédito e ainda pode ficar sozinho (com ou sem a sua contribuição do código fechada / aberta) - as pessoas não se importarão.

O que eu acho como desenvolvedor é que as pessoas não querem dar crédito, feche-o para imitar um ótimo desenvolvedor / codificador, sob o pretexto de ganhar dinheiro com os esforços de outra pessoa ...

então eu discordo para # 2 ...

  1. "intenção" é quase (virtualmente) sempre o caso ... você pode ficar na frente de um juiz (digamos que foi processado, levado a tribunal ou solicitado a explicar suas ações para isso) e declarar claramente sem murmurar e com distintas posição sobre o problema - por que você decidiu ocultar / fechar a parte 'open source' do seu código, isso não deve ser um problema.

meus 2 centavos. :)

O que é engraçado - a maioria das pessoas pensa que inventou uma "ideia específica" - quando, de fato, a "ideia" provavelmente (probabilidade extremamente alta) já foi lançada na forma de guardanapos, papel, codificação, internet, blog, etc ...

Portanto, embora possa ser novo para você, especialmente porque você o viu no sistema operacional de outra pessoa, provavelmente é usado em outros sistemas operacionais dos quais eles derivaram o trabalho do sistema operacional ... e, finalmente, provavelmente é usado em outro lugar on-line .. isso não é mesmo com uma questão de licença / direito autoral declarada ... nesse caso, você pode copiar dessa fonte ... modificar, alterar, excluir, adicionar ... (para copiar / url para rastrear onde você conseguiu mostrar que o obteve legitimamente) no código da maneira que desejar.

Eu acho que é incrível em 'code-land', especialmente quantas vezes eu descobri que meu código 'astuto' já estava escrito (não tão bem ... veja bem - lol) em 2003 no nerd de alguém, pesquisa no google classificação de # 1.239, site que eles criaram quando estavam na pós-graduação, apenas criando funções para uso gratuito e divertido. :)

O ponto é .. dê crédito, não evite o problema e, quando tudo mais falhar ... ou em caso de dúvida - PERGUNTE ao OS'r original por direitos de uso ... yeesh! quando é que ficamos tão arrogantes que não podemos simplesmente pedir a alguém para usar sua maconha, tesoura, cortador de grama ... e - ah sim - uma função legal que eles fizeram!

Ok, foram 3 centavos ...

William Ortell II
fonte
1
o problema é que ele está tentando fugir dos termos de licenciamento originais.
Paul Nathan
-4

Dar ao homem uma pausa!

  1. se uma queixa legal fosse registrada nele, isso significaria que alguém teria que realmente ter acesso ao código e LER. E se o software for compilado?

  2. Ele sempre poderá invocar sua ignorância no momento dos fatos. Não se deve ter boa fé antes de serem considerados culpados?

  3. Aprender não é copiar. Encontrar inspiração em algum trabalho existente definitivamente também não está copiando. E se ele aprendesse com um software a função de cada linha de código e decidisse que deveria usar os princípios dos resultados para melhorar isso e criar um software melhor, mais simples e mais enxuto. Não copiando IMHO.

Esses foram meus 2 centavos. Agora é a vez do primeiro sem pecado a jogar a pedra ...;)

Breakerfall
fonte
3
Para o nº 1: até que seu código-fonte seja intimado pelo juiz e você sorria timidamente para o júri quando ele vê sua "reescrita".
Jarrod Nettles
2
No 2: a violação de direitos autorais é normalmente uma questão civil, portanto, legalmente, não existe algo como "culpado". Se a preponderância das evidências indicar que o OP violou, isso é tudo o que é necessário. Para # 3: Não foi isso que a pergunta original disse.
David Thornley
1
(1) Não é difícil identificar um plágio flagrante sem ver o código-fonte. Além disso, não temos o hábito de aconselhar as pessoas sobre como se safar de atos ilegais e altamente antiéticos. (2) Ignorantia juris non excusat (a ignorância não é uma defesa ) (3) Reescrever linha por linha não está aprendendo. Reescrever linha por linha definitivamente não é apenas encontrar inspiração também. É plágio flagrante, puro e simples. Não vou repetir tudo aqui, mas há muitos documentos legais e precedentes apoiando isso.
Greg Jackson
OK, se eu não reescrevesse linha por linha, mas entendesse o algoritmo e o reimprimisse da minha maneira. Ou seja, uma operação de sala limpa de um homem. Isso é diferente? Caso contrário, não posso aprender com nenhum projeto de código aberto?
Chris Barry
4
@ Chris O ponto principal de uma operação de sala limpa é que as pessoas que implementam o algoritmo não viram o código fonte original. Não existe um "quarto limpo para um homem".
Adam Lear