Importa a você que um software é "fonte disponível", mas não "código aberto"


11

Você provavelmente conhece a lista de licenças de código aberto aprovadas oficialmente pelo OSI. Mais notavelmente, acho que seria a GPL, MIT, [insira sua licença favorita aqui].

Recentemente, participei de um projeto que, embora fosse de código aberto (o criador disponibilizou todo o código-fonte), não era oficialmente de código aberto sob uma dessas licenças oficiais.

  • Ele divulgou a fonte, mas não prometeu divulgá-la no futuro.

  • Ele permitiu sugestões de modificação, mas não prometeu aceitar patches e proibir a distribuição externa de versões com patches externos.

  • Permitia o uso do software em projetos comerciais ou pagos, mas não permitia a venda do próprio software.

Suponho que poderia ser chamado de "fonte disponível" e não de código aberto, como gostamos de pensar.

Percebo por que a equipe de gerenciamento de uma empresa não gostaria de negociar com este software. Eles não podem bifurcar, não podem vender, não podem criar sua própria versão do software e distribuí-lo ou vendê-lo.

Mas isso importaria para você como parte de uma equipe de engenharia de software que está apenas usando este software? Ainda posso terminar meu trabalho, posso usá-lo em um projeto pelo qual sou pago (mas não posso vender o software em si, o que não estou fazendo de qualquer maneira), e posso faça alterações no código para que ele se comporte de maneira diferente às minhas necessidades (mas não posso tornar públicas essas modificações) e, se eu quiser que essas modificações sejam disponibilizadas oficialmente para outras pessoas, a aprovação será do próprio projeto e eles escolherão se incorporá-los em um comunicado oficial ou não.

Portanto, sabemos que uma empresa que deseja basear seus negócios nesse software de "fonte disponível" não pode fazer isso, mas, como alguém da equipe de engenharia de software, essas diferenças são importantes para você ou parecem menos relevantes?

Curioso o que os outros pensam disso.


1
Eu pensei que parte do objetivo do OSS era que você não confiava em outra pessoa para aceitar e distribuir um patch, você tinha a fonte para poder fazer a coisa toda sozinho (incluindo configurar a coisa toda como um ramo / produto concorrente) se você quisesse)?
Jon Hopkins


Parece que os termos da licença eram bastante claros em relação a este software. Parece que se deve escrever seu próprio código em vez de usar código licenciado de uma maneira que não permita que eles realmente usem o código da maneira que precisam.
#

Respostas:


5

Para projetos que precisariam desenvolver do zero a funcionalidade fornecida por este software, é uma conveniência definitiva não fazer isso.

Mas se um pacote de código aberto comparável seria melhor depende de outros fatores:

  • será usado para fornecer algum serviço ou agrupá-lo como parte de outro produto?
  • eles têm os recursos para aprimorar e manter o produto de forma independente?
  • existe uma vantagem competitiva para usar este software em relação à versão de código aberto (no código ou no gerenciamento de projetos)?

Responder não a qualquer um desses fatores indica que o OSS é uma escolha melhor.

Na maioria das vezes, o código em si não é o fator determinante. É preciso examinar a imagem maior.

Os projetos do SIDEBAR OSS não podem prometer legalmente que manterão as versões futuras abertas ou que haverá versões futuras. Essa é uma das razões pelas quais ter uma licença aberta é tão vantajosa. Além disso, os projetos OSS não precisam aceitar patches de colaboradores (principalmente sem transferência de propriedade ou direitos).


2

A questão para esta e qualquer outra biblioteca externa é manutenção .

Qual é a vida útil do seu aplicativo e qual é a vida útil aparente desta biblioteca? O seu deve ser o mais curto possível.

Quem fará as correções para esta biblioteca? Como parece daqui, sua empresa deve alocar explicitamente recursos no futuro para a manutenção deste software, pois você não pode confiar em nenhum outro bug de correção. Você não pode compartilhar a carga de manutenção com mais ninguém, pois não pode compartilhar a fonte. Deseja caçar um bug de condição de corrida indescritível no código que você não conhece?

Somente esse pensamento pode tornar a biblioteca muito cara de usar.

Isso pode ser irrelevante se a biblioteca for muito sólida, robusta e fácil de trabalhar no nível de código-fonte, mas minha experiência é que a pressão dos colegas de verdadeiros projetos de código-fonte aberto simplesmente melhora o código, porque você tende a fazer o seu melhor.

Pessoalmente, eu consideraria muito cuidadoso se adotaria esse ou qualquer outro código externo, já que toda a razão para usar o código de outras pessoas é que você não precisa lidar com ele sozinho . Pense também em futuros mantenedores - você deve realizar exercícios de mudança de código na biblioteca para ver se isso pode ser feito. Pode haver algumas surpresas MUITO desagradáveis ​​aqui.

Você tem a liberdade de discutir a biblioteca em questão?


2

Para ser sincero, não vejo por que a equipe de gerenciamento de uma empresa teria problemas ao usar uma biblioteca de "fonte disponível". No que diz respeito à integração em seu próprio produto, eles podem apenas considerá-lo uma biblioteca de código fechado.

Para mim, como programador, não importa se uma biblioteca é "código aberto" ou "fonte disponível". Prefiro não fazer modificações locais em uma biblioteca externa, porque isso significa uma carga de manutenção adicional. Não apenas quando são encontrados erros nas minhas modificações locais, mas também na integração das modificações repetidas vezes quando um novo lançamento da biblioteca é lançado.

As únicas situações em que, IMHO, "código aberto" supera a licença "disponível disponível" descrita na pergunta é quando

  • a licença do nosso produto também exige a divulgação das fontes das bibliotecas contidas
  • estamos no negócio de produzir uma versão aprimorada / estendida da biblioteca

1

É por isso que a Free Software Foundation usa os termos 'grátis' ou 'não livre' para descrever o software. Eles não estão se referindo ao preço, mas a restrições impostas ao uso ou distribuição do software.

Parece que você atingiu um dos raros casos em que você tem acesso total ao código-fonte de alguma coisa, mas o software não é "Código-fonte Aberto" pela definição OSI .

Qualquer termo tem capacidade para se tornar um nome impróprio. Paguei US $ 50 pela minha primeira cópia do emacs (em fita QIC), mas o emacs é um software livre . Eu tenho o código fonte de alguns aplicativos proprietários que minha empresa usa internamente, mas eles não são de código aberto.

O que gera a maior bandeira vermelha (pelo menos para mim) não é garantia de acesso ao código fonte de versões futuras. Se você depende muito de poder modificar essa ferramenta, tome cuidado. Mesmo se você tiver um acordo verbal com o fornecedor, sempre terá um código, a menos que esteja na forma de contrato. Esse contrato nunca aconteceu.

Como CTO, tento o meu melhor para garantir que não dependemos de software não-livre. Estive no lado ruim do bloqueio de fornecedores várias vezes no passado, um erro que gosto de evitar. Embora usemos algumas coisas proprietárias, nossos negócios não sofreriam dificuldades indevidas se, de repente, não pudéssemos mais usá-las.

Parece-me que você está criando coisas para ter esse software e acesso ao código, então eu recomendo que você escreva algo que diga que você sempre terá acesso. O que acontece se o fornecedor for comprado?


-1

Isso importa bastante. Principais problemas com a abordagem "fonte disponível" que você descreveu:

  • Você não está no controle de seu destino tecnológico se não tiver a liberdade de modificar a fonte. Muitas vezes, a invasão direta da fonte pode ser preferível a uma solução bagunçada.
  • Você não tem garantia de que o software continuará sendo mantido e não tem a opção alternativa de fazê-lo sozinho, com o verdadeiro código aberto.
  • Como parece uma licença personalizada, você provavelmente tem um risco legal maior comparado ao uso de algo conhecido e comprovado, como as licenças GPL ou BSD.
  • Se não for um código aberto real, você não terá o mesmo nível de comunidade útil em torno dele, o que é uma grande vantagem para muitos projetos de código aberto

Minha sugestão: tente convencer o criador a lançar o software sob uma licença de código aberto. Isso deve ser uma vitória / vitória para todos - você porque obtém o software que deseja sob licenciamento de código aberto, o criador porque tornar o projeto código aberto provavelmente tornará o software muito mais bem-sucedido a longo prazo.


O que diabos é "fonte aberta real" que a licença descreve para mim parece real para mim.
#
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.