Por que os trabalhos de pesquisa que mencionam software customizado não lançam o código-fonte? [fechadas]

69

Existe alguma razão pela qual o código-fonte do software mencionado em documentos de pesquisa não é liberado? Entendo que os trabalhos de pesquisa são mais sobre a ideia geral de realizar algo do que detalhes de implementação, mas não entendo por que eles não liberam o código.

Por exemplo, este artigo termina com:

Results

The human line drawing system is implemented through the Qt framework in C++ using OpenGL, and runs on a 2.00 GHz Intel dual core processor workstation without any additional hardware assistance. We can interactively draw lines while the system synthesizes the new path and texture.

Eles mantêm o código-fonte fechado intencionalmente devido a uma monetização que pretendem fazer com ele ou devido a direitos autorais?

    
por Antoine 26.10.2012 / 18:19
fonte

18 respostas

71

Várias razões vêm à mente.

  • O código é muito grande para artigos. Por um curto período de tempo, projetos interessantes foram curtos o suficiente para serem publicados com o artigo que os descreveu. Isso ainda pode acontecer, mas muitos projetos de tamanho suficientemente grande para serem interessantes cresceram demais para serem publicados com os artigos que os descrevem.
  • Os hosts públicos não são gratuitos nem duráveis. Até recentemente, hosts públicos baratos, duráveis e fáceis de acessar não estavam disponíveis.
  • Publicar um artigo é mais fácil do que publicar um projeto. Algumas pessoas têm tempo para publicar um trabalho ou um projeto, mas não os dois.
  • Incentivos ligados ao papel. Muitos anos atrás, perguntei a um colega sobre desenvolvimento de produtos e patentes e recebi a notícia de que a maioria das pessoas de lá fazia praticamente um ou outro. Tal como acontece com escritores de papel (think academia) e desenvolvedores de código aberto, as recompensas são voltadas para um produto de trabalho ou o outro.
  • Auto motivação. O desejo de descrever idéias ou implementar código nem sempre está presente em partes iguais na mesma pessoa. Muitos de meus professores admitiram abertamente que ou nunca codificaram muito, ou que estavam muitos anos longe de terem sido codificados fluentemente. Da mesma forma, muitos desenvolvedores mal querem escrever comentários em seu código ou quando se comprometem com o controle de origem.
  • A durabilidade da hospedagem do projeto e do produto de trabalho também é um problema. Quem quiser ligar em algum lugar que possa ter desaparecido daqui a alguns anos e, como resultado, diminuir o valor do papel.
  • Tradição. Os editores são orientados a revisar e publicar trabalhos, mas podem não estar prontos para fazer a mesma avaliação de projetos.
    Também as visões tradicionais sobre o que é um nível razoável de reprodutibilidade varia entre os campos. Espera-se que um químico que publique um artigo sobre um novo método de síntese anote detalhes suficientes para que outro químico realize a síntese. Não se esperaria que ela enviasse os produtos e o material para o periódico. Espera-se que os leitores que queiram usar / reproduzir o trabalho comprem seus próprios estudos e façam a síntese em seus laboratórios (embora possam pedir para entrar e visitar o laboratório para ver como isso é feito na prática). Nem seria esperado que um biólogo ligasse seus novos camundongos transgênicos ao papel. Esta vista na reprodutibilidade corresponde a e. dando uma descrição (pseudo-código) do algoritmo em oposição ao envio da implementação real.
  • O código nu pode ser chocante . É preciso muito menos polimento para revisar um documento de comprimento de papel do que para inspecionar código, revisão de código e qualidade para garantir um projeto. Eu tenho um monte de código que eu ficaria mais à vontade para contar do que mostrar a você. Espero que as coisas estejam avançando a um ponto em que todos nós iremos escrever um código bonito, mas se seu código foi apressado, mal ou não funciona completamente, você pode estar mais confortável em não compartilhar os executáveis ou a fonte.
  • Fonte fechada. Nem todos adotaram o código aberto. Muitos trabalhos são escritos sobre o trabalho para o DoD, projetos comerciais ou projetos financiados pelo setor privado, onde há benefícios da exposição do projeto ao público, mas ainda há segredos comerciais ou vantagens de mercado que poderiam ser corroídas pelo fornecimento aberto do código ou outros produtos de trabalho.
  • Publique trabalhos adicionais com base neste código. Se o código não for publicado, poderá dar ao autor uma vantagem na publicação do trabalho de acompanhamento. Outros pesquisadores concorrentes podem precisar reimplementar o trabalho, o que pode levar um tempo precioso.
por 17.10.2013 / 18:51
fonte
40

Leia a apresentação de Randall LeVeque sobre "As 10 principais razões para não compartilhar seu código (e por que você deveria de qualquer maneira)" link

Ele argumenta convincentemente que o código é análogo às provas em matemática e nos convida a considerar um mundo onde as provas não são publicadas, porque são muito longas ou muito feias, ou não funcionam nos casos extremos, ou pode valer dinheiro, ou alguém pode roubá-lo ...

Basicamente, se você está fazendo ciência, então você deve publicar seu código. Caso contrário, você está fazendo alquimia e você pode voar de volta para a idade das trevas e morrer de peste, tanto quanto eu estou preocupado.

    
por 25.10.2012 / 17:31
fonte
27

Geralmente, os programas usados para produzir os resultados dos artigos são apenas ferramentas, e apenas os resultados são importantes. Então, eles não são colocados no papel que apresenta o contexto, a metodologia, os resultados e uma discussão sobre eles.

Mas os resultados devem ser reproduzíveis. E então, quando as fontes de dados nas quais o papel é baseado estão publicamente disponíveis, os programas que os transformam em resultados geralmente também são necessários. Eles são frequentemente colocados "em algum lugar" na Web, se não suscitar nenhum problema de patente / direitos autorais. Ou, pelo menos, os autores devem enviar-lhe os programas se você lhes perguntar.

    
por 25.10.2012 / 14:54
fonte
14

Não é de código fechado. O software simplesmente não foi publicado.

Resposta curta:

There are several reasons not to publish the software, but it's uncommon to publish the software in a closed-source manner.

Resposta longa:

Fonte fechada significa que o software foi publicado e o código-fonte não. Mas o caso comum é que nem o software nem o código-fonte foram publicados .

Na minha experiência (eu trabalho em ciência atmosférica), os autores ficam muito felizes se você contatá-los e perguntar se você pode obter o software deles (incluindo o código-fonte, é claro) para fazer pesquisas. Se eu vou escrever um artigo com um projeto baseado no deles, eles pelo menos receberão uma citação (bom!), Mas provavelmente obterão um co - papel autônomo fora dele (porque é claro que eles não documentaram seu software para que alguém possa usá-lo sem a ajuda deles). Um artigo de co-autor relativamente barato, então é ainda melhor .

A verdadeira questão é:

Why don't they publish the software?

Existem várias razões para isso:

  • O software publicado precisa de documentação. Normalmente, as pessoas não gostam de escrever documentação.
  • O software publicado pode atrair usuários. Os usuários podem ter dúvidas. Isso leva tempo (mas veja acima).
  • O software publicado pode exigir manutenção não trivial.
  • O software de publicação requer hospedagem.

A lista pode ser mais longa. Merece ser uma questão à parte, na Academia.SE, não aqui.

(Note que no meu grupo, publicamos nosso software - licenciado sob GPL )

    
por 25.10.2012 / 22:37
fonte
8

Isso pode soar cínico, mas, na minha experiência, os artigos de pesquisa não são escritos para serem fáceis de entender ou simples de reproduzir. Em vez disso, na comunidade de pesquisa, é mais importante ter um artigo que soe e pareça muito científico. Por essa razão, a maioria dos autores transforma seu código em fórmulas matemáticas e tenta provar que seu algoritmo é matematicamente correto. Normalmente, o número de páginas para um artigo desse tipo é limitado, por isso não há espaço para publicar o código. No entanto, é claro que isso não limitaria nenhum autor a vincular ao código completo com um URL ...

Pode-se supor que, se o código não for publicado, ou os autores querem detalhar suas descobertas, ou (o que eu pessoalmente acho ser o mais frequente) eles temem que as pessoas vejam que suas pesquisas não são tão impressionantes quanto afirmação. Muitas vezes, os resultados só se aplicam a um número muito limitado de casos.

Além disso, tenho visto que a partir de um simples programa / algortim vários trabalhos de pesquisa são derivados. Se o código fosse publicado, seria difícil escrever mais artigos sobre o mesmo assunto. Assim, o conhecimento é retido para publicá-lo ao longo do tempo em pequenas fatias.

Sempre tenha em mente que, nas universidades, não são tanto os resultados ou a aplicabilidade da pesquisa que são importantes, mas o número de artigos que você publica. É triste, mas é verdade.

    
por 25.10.2012 / 11:52
fonte
7

Além da intenção de monetizar, não vejo uma boa razão para deixar o código-fonte fora dos documentos de pesquisa. Há um pequeno movimento que propõe o fornecimento do código-fonte, como regra, para a publicação de qualquer pesquisa que dependa do software de alguma forma ou forma. Você pode ler mais sobre isso, é chamado de Manifesto do Código de Ciência .

    
por 25.10.2012 / 16:41
fonte
6

As respostas acima perdem algumas razões práticas que freqüentemente surgem na Computação Gráfica (a área em que o artigo mencionado pelo autor foi publicado). A Liberação de Código varia muito entre os campos no CS - por exemplo, no Aprendizado de Máquina, o código geralmente é publicado. Em Human Computer Interaction, o código quase nunca é publicado.

Eu liberei um pouco de código em Computação Gráfica, e embora eu ache que os autores devam liberar seu código, existem muitas razões simples e não-conspiratórias por que eles don 't . Por exemplo

1) A maioria dos projetos de pesquisa em Computação Gráfica envolve colaboração entre múltiplos pesquisadores, freqüentemente em instituições diferentes, cada qual fornecendo alguma parte do quebra-cabeça (isto é, algoritmos, bibliotecas, etc.). Para liberar o código de trabalho, todos os pesquisadores precisam concordar. Isso raramente é uma discussão simples e geralmente é mais fácil evitar o problema.

2) Muitas vezes, o código de um único artigo é incorporado em uma base de código maior que está sendo desenvolvida em um laboratório. Essa base de código conterá outro trabalho não publicado. Separar o código de um único projeto é muito trabalho, muitas vezes sem nenhum benefício imediato para as pessoas que têm que fazer esse trabalho (veja o incentivo abaixo).

3) As universidades geralmente têm direitos de propriedade intelectual sobre o código. Portanto, é necessário entrar em contato com um "escritório de inovações" que tornará sua vida infinitamente difícil, querendo que você documente a "invenção" para patentear, etc., antes de abrir o código. Em alguns casos, a universidade pode até negar a permissão para liberar a fonte (isso varia entre instituições e é muito complicado por (1))

4) Muitas pesquisas de computação gráfica são feitas por corporações. Nesse caso, os autores também não possuem o código e precisam obter permissão dos advogados para liberar o código. Os advogados têm pouco ou nenhum incentivo para dizer sim.

5) Não há incentivo para publicar código. A maioria dos códigos de pesquisa da Computer Graphics nunca é usada por mais ninguém. Mesmo se for, para o código de propósito geral, você normalmente recebe um reconhecimento (sem valor em termos de seu currículo). Se você tiver sorte, receberá uma citação. Contratando comitês e agências de subvenções geralmente não se importam nem um pouco se você liberar seu código. Então, o tempo gasto preparando o código para o lançamento é um desperdício de tempo que poderia ter sido gasto em outro trabalho. (Há pessoas ativamente tentando mudar isso em computação gráfica).

6) Existem incentivos para não publicar código. Às vezes, o código pode se transformar em empresas iniciantes, ser licenciado para empresas existentes, etc. Isso financia pesquisas futuras. Nós todos temos que comer.

    
por 30.10.2012 / 19:23
fonte
5

Depende. Uma pessoa escrevendo um artigo, ou seu supervisor, decide o que deve ser feito com o código-fonte. Às vezes, as pessoas tornam o projeto uma fonte aberta.

Às vezes, os projetos geralmente são financiados por empresas, ou seja, são de propriedade deles. Nesses casos, o autor do trabalho não pode mostrar o código.

    
por 25.10.2012 / 11:55
fonte
3

Geralmente é uma questão de limitações de páginas. Se o algoritmo é extremamente curto, muitas vezes é representado, pelo menos como pseudocódigo, no papel. Por outro lado, se a versão impressa do código subjacente é mesmo um punhado de páginas, imprimindo o código não deixaria espaço para a carne do artigo. Um artigo de jornal com dez páginas é um artigo longo.

Não disponibilizar a fonte cria um potencial para fraude. Devido a esse potencial, muitos periódicos agora exigem que os autores enviem seu código-fonte como informação suplementar (que pode ser obtida no periódico se você tiver acesso; uma taxa de assinatura pesada pode estar envolvida). Alguns outros periódicos exigem que os autores divulguem seu código-fonte para qualquer um que peça por ele. Ainda outras revistas ainda estão na idade das trevas; o código-fonte não é necessário para o envio e os autores não precisam liberá-lo.

O mais fácil é perguntar aos autores se eles podem fornecer o código-fonte para você. Os endereços de e-mail dos autores são tipicamente listados na maioria dos artigos de periódicos atualmente.

    
por 25.10.2012 / 12:36
fonte
3

Minha experiência como cientista (5 artigos publicados) é que muitas vezes não é necessário que o periódico libere o código que foi usado para criar os resultados. Isso não está dizendo que os periódicos não aceitariam os scripts. Muitos periódicos permitem material suplementar on-line. Alguns periódicos voltados para algoritmos e tais (por exemplo, Computadores e Geociências) exigem que você adicione a origem de um algoritmo, mas isso é mais uma exceção do que uma regra.

Além da cultura nas revistas, o código dos cientistas é apenas um meio para um fim. Muitos não são desenvolvedores de software profissionais. Como muitos consideram o código apenas uma ferramenta para expressar a ciência, eles não sentem a urgência de também publicar o código. Além disso, polir seu código até o ponto em que ele poderia ser publicado requer muito trabalho. Um cientista é pago para fazer ciência, não para escrever software.

    
por 25.10.2012 / 15:09
fonte
2

Na maioria das vezes, o programa atual é apenas uma ferramenta para chegar ao fim, em vez do produto em si. Dar detalhes completos do código-fonte seria como fornecer um desenho completo da caneta usada para assinar o relatório e / ou esquemas do PC.

Tendo dito isto, especialmente onde a revisão por pares está sendo convidada, o código fonte estará disponível - embora sob alguma forma de Acordo de Não Divulgação (NDA) - já que existe inerentemente Propriedade Intelectual incorporada dentro do programa.

Se você estiver genuinamente interessado no código, sugiro O comentário do @ Buttons é o melhor conselho: Pergunte a eles:)

    
por 12.04.2017 / 09:31
fonte
1

Depende muito do propósito para o qual o código foi escrito. Se foi para demonstrar um ponto, pode muito bem ser que não é otimizado e, portanto, não é ideal que seja lançado. Se os conceitos e a metodologia subjacentes forem válidos, deve ser possível recriar o resultado do código a partir do zero. Pode haver problemas de direitos autorais e propriedade também.

Em princípio, não é tecnicamente impossível liberar o código, mas as razões pelas quais ele pode não ser liberado são variadas. Provavelmente não há uma resposta simples para essa pergunta por esse motivo. Em casos específicos, talvez você possa perguntar aos pesquisadores envolvidos.

    
por 25.10.2012 / 13:10
fonte
1

O artigo que você citou já tem 28 páginas, e a maior parte do conteúdo é sobre as decisões de design relacionadas à solução do problema (indicado no título).

O código é o passo final para validar o design. Não é trivial, mas não é a parte que agrega valor aos resultados do trabalho, especialmente se você considerar o espaço que ocuparia.

Nem todo caso é o mesmo. Alguns documentos dão código-fonte, ou pelo menos pseudo-código. Alguns editores não permitem isso. Alguns permitem, mas por causa do espaço, os autores não o incluem. Um jornal onde eu publiquei o código fonte formatado como "figuras" e a versão eletrônica tem como dados de imagem , apesar de ter enviado como texto.

    
por 25.10.2012 / 16:56
fonte
1
Os incentivos são importantes e os incentivos dos pesquisadores são, em geral, garantir que eles possam produzir um fluxo constante de artigos que se baseiam uns nos outros. Alunos de pós-graduação geralmente precisam de 3-5 trabalhos publicados que podem se transformar em capítulos individuais de sua tese, a fim de se formar. O corpo docente júnior precisa gerar tantas publicações quanto possível antes de sua revisão de posse. Por essa razão, a maioria dos trabalhos acadêmicos é realmente em papel n em uma série. Por exemplo, o documento que você faz baseia-se em um artigo publicado pelo mesmo grupo um ano antes e discute o motivo que o próximo artigo provavelmente cobrirá.

A publicação do código-fonte permite potencialmente que outro pesquisador em um grupo diferente produza o papel n+1 antes do autor original ou pelo menos produza um papel que cubra uma fração significativa do que o autor esperava cobrir como parte deste fluxo de pesquisa. Se isso acontecer, o estudante de pós-graduação poderá facilmente encontrar-se a gastar mais 6-12 meses na escola de pós-graduação, a fim de produzir resultados de pesquisa suficientes para se formar. O membro do corpo docente pode acabar com menos um artigo publicado quando o tempo de revisão da posse chegar. Ambos são obviamente grandes golpes nas carreiras do pesquisador. Acrescente-se o fato de que as aplicações acadêmicas são frequentemente parte dos esforços de pesquisa de várias pessoas dentro de um grupo de pesquisa (seja diretamente ou porque compartilham certos componentes) e há pressão dentro do grupo de pesquisa para não liberar código que possa acabar prejudicando alguém você trabalha todos os dias.

Você frequentemente obtém tipos similares de discussões em campos nos quais a coleta de dados brutos é demorada e altamente distribuída. Na astronomia, por exemplo, um grupo de pesquisa pode passar anos coletando dados antes de ter informações suficientes para publicar um artigo. Mas eles usarão esses dados para produzir uma série de documentos. Os grupos de pesquisa estão muito relutantes em compartilhar mais de seus conjuntos de dados do que o absolutamente necessário, porque torna-se fácil demais para outros grupos aproveitarem o tempo investido na coleta de dados para colher os frutos da análise dos dados. p>

Eventualmente, muito deste código será lançado assim como os dados astronômicos eventualmente serão liberados. Isso geralmente acontece quando o autor chega ao final da série de artigos ou quando a maioria dos grupos de pesquisa que trabalham em temas semelhantes tem mecanismos semelhantes, então liberar o código não dá mais a um novo pesquisador uma vantagem competitiva.

Seria ideal para a ciência se os dados e o código fossem liberados mais rapidamente. Mas isso muitas vezes prejudicaria o pesquisador científico e isso é cujos incentivos importam neste caso.

    
por 26.10.2012 / 02:12
fonte
1

Como alguém que fez isso (do lado do aluno) várias vezes no passado: muitas vezes, os professores que escrevem o jornal nem mesmo vêem o código-fonte. Eles farão com que seus alunos escrevam o código e, em seguida, só peçam o executável final (ou até mesmo apenas uma confirmação do resultado) quando estiver concluído.

Além disso, muitas vezes o código escrito não é muito legível, porque os alunos apenas o hackearam juntos para fazê-lo, e porque (embora sejam muito brilhantes) alunos de pós-graduação sem realismo a experiência do mundo tende a não ser os melhores codificadores do mundo ...

    
por 26.10.2012 / 17:23
fonte
1

A maioria das razões que eu posso pensar já foram levantadas aqui, mas eu pensei em adicionar mais duas coisas que realmente aconteceram comigo:

A revista não tem ideia do que fazer .

Para um dos artigos em que estava trabalhando, decidi que estava absolutamente, sem dúvida, incluir o código-fonte (o ponto inteiro do trabalho era a visualização de dados) e dados de exemplo para acompanhá-lo. Então, junto com o envio, eu anexei os Suplementos Eletrônicos 1 e 2 - um script R com meu código e um arquivo CSV com os dados necessários para o script R.

A revista, como se constata, só pode receber suplementos eletrônicos se eles foram encaixados em arquivos do Word. Depois de tentar a melhor parte do dia para obter o script R dessa forma, desisti e decidi não incluir o código como um suplemento. Eu poderia tê-lo hospedado na minha universidade, mas como estudante de pós-graduação eu sabia que perderia minha conta em ~ 1 ano - o código aberto não tem qualquer utilidade se for imediatamente ultrapassado pelo linkrot.

Acabei hospedando-o no GitHub e colocando uma referência a isso no artigo, mas isso foi porque eu realmente queria que o código entrasse. Eu vejo, especialmente porque a maioria das pessoas na minha Não use algo como o GitHub, apenas decidindo que o esforço não valeria o punhado de pessoas que o baixariam, e que poderiam me enviar um e-mail de qualquer maneira, se realmente quiserem.

A revista não está interessada

Inseri alguns detalhes sobre o próprio código em um artigo a pedido de um revisor, mas é um diário clínico (leia-se: ninguém codifica), ele não permite suplementos eletrônicos e, novamente, adicionar o código-fonte seria provavelmente foram mais problemas do que valeu a pena.

Ironicamente, se alguém fez procurar o código, ele é (ou em breve será) código aberto, mas eu já estava no limite de 'Isso está ficando cada vez mais técnico' e eu decidi que a breve, 'faça o revisor feliz' mencionar era tudo que eu ia fazer.

    
por 18.10.2013 / 18:43
fonte
0

Muitas vezes a implementação (ou seja, o software não importa), mas cada vez mais a implementação afeta os resultados.

Sempre que a implementação é importante ... o código-fonte deve ser disponibilizado definitivamente! Quanto mais os resultados dependem da implementação ou dos métodos computacionais, mais importante se torna publicar o código-fonte.

    
por 25.10.2012 / 17:55
fonte
0

Gostaria de acrescentar alguns pontos sobre o tipo de código com o qual lidei como quimiométrico (químico que faz a análise de dados):

  • As pessoas que escrevem código de análise de dados (como eu) são comparativamente poucas em comparação com as pessoas que usam esse código. "Código personalizado escrito em casa" não significa que os autores o escreveram - poderia ser o código dos colegas para que os autores não possam publicá-lo.

  • Uma publicação separada do código pode ser planejada, e o autor do código (ou o supervisor) pode estar preocupado que a novidade seja perdida se o código tiver sido (parcialmente) tornado público antes. Mesmo se o periódico para o qual a publicação do código é feita não objeta que o código tenha sido disponibilizado publicamente antes, a preocupação pura do supervisor (ou alguém no escritório do IP) pode ser suficiente para parar o publicação do código.

  • O código de análise de dados geralmente é adaptado aos dados. Não faz muito sentido sem os dados. (Você pode argumentar que os dados devem ser publicados de qualquer maneira, mas essa é uma questão diferente e fora do assunto aqui.)
    De qualquer forma, no meu instituto, nós arquivamos dados brutos e código de análise de dados junto com o papel. A política padrão não é (ainda?) Disponibilizá-los publicamente , mas eles certamente estariam disponíveis mediante solicitação.

  • (A visão tradicional sobre o que é reprodutibilidade na química corresponde mais a uma descrição (possivelmente pseudocódigo) do algoritmo do que ao envio do código-fonte real)

  • Muitos dos meus colegas usam ferramentas interativas para a análise de dados, que não registram as etapas da análise de dados. Portanto, não há código-fonte que possa ser publicado. A análise de dados corresponde menos a uma programação do que a uma abordagem de laboratório: você faz as coisas e anota o que você faz e observa em seu livro de laboratório.

por 17.10.2013 / 19:13
fonte

Tags