Existe uma razão pela qual o código fonte do software mencionado nos trabalhos de pesquisa não é divulgado? Entendo que os trabalhos de pesquisa são mais sobre a idéia 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 documento termina com:
Resultados
O sistema de desenho de linha humano é implementado através da estrutura Qt em C ++ usando OpenGL e é executado em uma estação de trabalho com processador dual core de 2,00 GHz Intel sem qualquer assistência adicional de hardware. Podemos desenhar linhas interativamente enquanto o sistema sintetiza o novo caminho e textura.
Eles mantêm o código-fonte fechado intencionalmente por causa de uma monetização que pretendem fazer com ele ou por causa de direitos autorais?
Respostas:
Várias razões vêm à mente.
Também as visões tradicionais sobre o que é um nível sensível de reprodutibilidade variam 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 era esperado que ela enviasse os produtos e educação para o diário. Espera-se que os leitores que desejam usar / reproduzir o artigo comprem seus próprios educadores e façam a síntese em seu laboratório (embora possam pedir para vir visitar o laboratório para ver como é feito na prática). Não se esperava que um biólogo anexasse seus novos ratos transgênicos ao papel. Essa visão sobre reprodutibilidade corresponde, por exemplo, a fornecer uma descrição (pseudo-código) do algoritmo, em vez de enviar a implementação real.
fonte
Leia a apresentação de Randall LeVeque em "Os 10 principais motivos para não compartilhar seu código (e por que você deveria fazer assim mesmo)" http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf
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 podem valer a pena dinheiro, ou alguém pode roubá-lo ...
Basicamente, se você está fazendo ciência, deve publicar seu código. Caso contrário, você está fazendo alquimia e pode voar de volta para a idade das trevas e morrer de peste no que me diz respeito.
fonte
Geralmente, os programas usados para produzir os resultados dos papéis são apenas ferramentas, e apenas os resultados são importantes. Portanto, eles não são colocados no trabalho 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 artigo se baseia estão disponíveis ao público, os programas que as transformam em resultados geralmente também são necessários. Eles costumam ser colocados "em algum lugar" na Web se não suscitar nenhum problema de patente / direito autoral. Ou, pelo menos, os autores devem enviar os programas, se você solicitar.
fonte
Não é uma fonte fechada. O software simplesmente não foi publicado.
Resposta curta:
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 (trabalho na ciência atmosférica), os autores ficam muito felizes se você entrar em contato com eles e perguntar se pode obter o software deles (incluindo código-fonte, é claro) para fazer pesquisas. Se eu vou escrever um artigo com um projeto baseado no deles, eles terão pelo menos uma citação (bom!), Mas provavelmente obterão um artigo em co-autoria (porque é claro que eles não (documente seu software para que alguém possa usá-lo sem sua ajuda). Um artigo de co-autor relativamente barato, então é ainda melhor .
A verdadeira questão é:
Há várias razões para isso:
A lista pode ser feita por mais tempo. Merece ser uma pergunta separada, na Academia.SE, não aqui.
(Observe que no meu grupo, publicamos nosso software - licenciado sob a GPL )
fonte
Isso pode parecer cínico, mas, na minha experiência, os trabalhos 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 pareça e pareça muito científico. Por esse motivo, 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 esse artigo é limitado, portanto 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, os autores desejam classificar suas descobertas ou (o que pessoalmente acho que é o caso com mais frequência) eles temem que as pessoas vejam que suas pesquisas não são tão impressionantes quanto afirmam. Frequentemente, os resultados se aplicam apenas a um número muito limitado de casos.
Além disso, vi que, a partir de um programa / algortihm simples, vários trabalhos de pesquisa são derivados. Se o código fosse publicado, seria difícil escrever mais artigos sobre o mesmo tópico. Portanto, o conhecimento é retido para publicá-lo ao longo do tempo em pequenas fatias.
Lembre-se sempre de 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.
fonte
Além da intenção de monetizar, não vejo uma boa razão para deixar o código fonte fora dos trabalhos de pesquisa. Há um pequeno movimento inicial que propõe o fornecimento do código fonte como regra para publicar qualquer pesquisa que dependa do software de alguma forma, forma ou formato. Você pode ler mais sobre isso, é chamado de Science Code Manifesto .
fonte
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 Machine Learning, o código geralmente é publicado. Na interação humano-computador, o código quase nunca é publicado.
Lancei bastante código em Computação Gráfica e, embora eu ache que os autores devam liberar seu código, há muitas razões simples, não relacionadas à conspiração, para que eles não o façam . Por exemplo
1) A maioria dos projetos de pesquisa em computação gráfica envolve a colaboração entre vários pesquisadores, geralmente em instituições diferentes, cada um fornecendo alguma peça do quebra-cabeça (por exemplo, algoritmos, bibliotecas, etc.). Para liberar o código de trabalho, todos os pesquisadores precisam concordar. Raramente é uma discussão simples e geralmente é mais fácil evitar o problema.
2) Geralmente, o código de um único artigo é incorporado em uma base de código maior, desenvolvida em laboratório. Essa base de código conterá outro trabalho não publicado. Separar o código para um único projeto é muito trabalhoso, geralmente sem benefícios imediatos para as pessoas que precisam fazer esse trabalho (consulte o incentivo abaixo).
3) As universidades geralmente têm direitos de IP no código. Portanto, é necessário entrar em contato com um "escritório de inovações" que tornará sua vida infinitamente difícil, desejando que você documente a "invenção" para que ela possa patenteá-la, etc., antes de você abrir a fonte. Em alguns casos, a universidade pode até negar a permissão para liberar a fonte (isso varia entre as instituições e é muito complicado por (1))
4) Muitas pesquisas em computação gráfica são realizadas por empresas. Nesse caso, os autores também não possuem o código e precisam obter permissão dos Advogados para liberá-lo. Os advogados têm pouco ou nenhum incentivo para dizer que sim.
5) Não há incentivo para publicar código. A maioria dos códigos de pesquisa de computação gráfica nunca é usada por mais ninguém. Mesmo que seja, para o código de uso geral você geralmente recebe um reconhecimento (sem valor em termos de seu currículo). Se você tiver sorte, receberá uma citação. Os comitês de contratação e as agências de concessão geralmente não se importam nem um pouco se você lançou seu código. Portanto, o tempo gasto na preparação do código para liberação é um desperdício de tempo que poderia ter sido gasto em outro artigo. (Existem pessoas tentando ativamente mudar isso na 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. Todos nós temos que comer.
fonte
Depende. Uma pessoa que está escrevendo um artigo ou seu supervisor decide o que deve ser feito com o código-fonte. Às vezes, as pessoas tornam o projeto um código aberto.
Às vezes, os projetos geralmente são financiados por empresas, o que significa que é propriedade deles. Nesses casos, o autor do artigo não tem permissão para mostrar o código.
fonte
Geralmente, é uma questão de limitações de página. Se o algoritmo é extremamente curto, muitas vezes é representado, pelo menos como pseudocódigo, no artigo. Por outro lado, se a versão impressa do código subjacente tiver até algumas páginas, a impressão do código não deixaria espaço para o conteúdo do artigo. Um artigo de jornal com dez páginas é um artigo longo.
Não disponibilizar a fonte cria um potencial de fraude. Devido a esse potencial, muitos periódicos agora exigem que os autores enviem seu código-fonte como informações suplementares (que podem ser obtidas com o periódico se você tiver acesso; pode haver uma alta taxa de assinatura). Alguns outros periódicos exigem que os autores liberem seu código-fonte para quem o solicitar. No entanto, 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 são obrigados a liberá-lo.
A coisa mais fácil a fazer é perguntar aos autores se eles podem fornecer o código-fonte para você. Atualmente, os endereços de e-mail dos autores estão listados na maioria dos jornais.
fonte
Minha experiência como cientista (5 artigos publicados) é que muitas vezes não é exigido pelo periódico que libere o código que foi usado para criar os resultados. Isso não significa que os periódicos não aceitariam os scripts. Muitas revistas permitem material suplementar online. Alguns periódicos voltados para algoritmos e outros (por exemplo, Computadores e Geociências) exigem que você adicione a fonte de um algoritmo, mas isso é mais uma exceção do que uma regra.
Além da cultura nas revistas, o código para cientistas é apenas um meio para atingir um fim. Muitos não são desenvolvedores profissionais de software. Como muitos consideram o código apenas uma ferramenta para expressar a ciência, eles não sentem a urgência de publicá-lo. Além disso, polir seu código até o ponto em que ele pode ser publicado exige muito trabalho. Um cientista é pago para fazer ciência, não para escrever software.
fonte
Na maioria das vezes, o programa real é apenas uma ferramenta para chegar ao fim, e não o produto por si só. Fornecer detalhes completos do código-fonte seria semelhante a fornecer um desenho completo da caneta usada para assinar o relatório e / ou esquemas do PC.
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) -, pois há inerentemente Propriedade Intelectual incorporada no programa.
Se você está realmente interessado no código, sugiro que o comentário dos @Buttons seja o melhor conselho: pergunte a eles :)
fonte
Depende muito da finalidade para a qual o código foi escrito. Se fosse para demonstrar um ponto, pode ser que ele não seja otimizado e, portanto, não é o ideal que seja liberado. Se os conceitos e a metodologia subjacentes forem válidos, será possível recriar o resultado do código do zero. Também pode haver problemas de direitos autorais e propriedade.
Em princípio, não é tecnicamente impossível liberar o código, mas as razões pelas quais ele pode não ser lançado são variadas. Provavelmente não há uma resposta simples para esta pergunta por esse motivo. Em casos específicos, talvez você possa perguntar aos pesquisadores envolvidos.
fonte
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 (declaradas no título).
O código é a etapa final para validar o design. Não é trivial, mas não é a parte que agrega valor aos resultados do artigo, especialmente se você considerar o espaço que ele ocuparia.
Nem todo caso é o mesmo. Alguns trabalhos fornecem 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 periódico em que publiquei o código-fonte o formatou como "figuras" e a versão eletrônica os possui como dados de imagem, mesmo que eu o tenha enviado como texto.
fonte
Os incentivos são importantes e os incentivos dos pesquisadores geralmente garantem que eles possam produzir um fluxo constante de papéis que se incrementam gradualmente. Os estudantes de pós-graduação geralmente precisam de 3 a 5 artigos publicados que podem se transformar em capítulos individuais de suas teses para se formarem. O corpo docente júnior precisa gerar o máximo de publicações possível antes da revisão da posse. Por esse motivo, a maioria dos trabalhos acadêmicos é realmente de papel
n
em uma série. Por exemplo, o artigo que você menciona baseia-se em um artigo publicado no mesmo grupo um ano antes e discute o terreno que o próximo artigo provavelmente abordará.A publicação do código-fonte potencialmente permite que outro pesquisador de um grupo diferente produza papel
n+1
antes de o autor original produzir ou pelo menos produzir um artigo que cubra uma fração significativa do terreno que o autor esperava cobrir como parte desse fluxo de pesquisa. Se isso acontecer, o estudante de pós-graduação poderá encontrar-se facilmente passando mais 6 a 12 meses na escola para produzir uma quantidade suficiente de pesquisas para se formar. O membro do corpo docente pode terminar com menos um artigo publicado quando chegar o tempo de revisão da posse. Ambos são obviamente grandes golpes para as carreiras do pesquisador. Acrescente o fato de que as aplicações acadêmicas costumam fazer parte dos esforços de pesquisa de várias pessoas dentro de um grupo de pesquisa (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 que você trabalha todos os dias.Muitas vezes, você recebe tipos semelhantes de discussões em campos em que 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 papéis. Os grupos de pesquisa são muito relutantes em compartilhar mais de seus conjuntos de dados do que o absolutamente necessário, porque torna-se muito fácil para outros grupos aproveitarem o tempo investido na coleta de dados para colher os frutos de realmente analisar os dados.
Eventualmente, muito desse código será liberado, assim como os dados astronômicos eventualmente serão liberados. Isso geralmente ocorre quando o autor chega ao final dessa série de artigos ou quando a maioria dos grupos de pesquisa que estão trabalhando em tópicos semelhantes possui mecanismos semelhantes. Portanto, liberar o código não dá mais ao novo pesquisador uma vantagem competitiva.
Seria ideal para a ciência se os dados e o código fossem liberados mais rapidamente. Mas isso geralmente prejudicaria o pesquisador científico e é para isso que os incentivos são importantes nesse caso.
fonte
Como alguém que fez isso (no lado do aluno) várias vezes no passado: muitas vezes os professores que escrevem o jornal nem sequer veem o código-fonte. Eles pedem que seus alunos escrevam o código e depois pedem apenas o executável final (ou mesmo apenas uma confirmação do resultado) quando estiver completo.
Além disso, muitas vezes o código escrito não é muito legível de qualquer maneira, porque os estudantes o copiaram para fazê-lo e porque (embora sejam muito brilhantes) os alunos de pós-graduação sem experiência no mundo real tendem a não ser os melhores codificadores do mundo ...
fonte
A maioria das razões pelas quais consigo pensar já foi levantada aqui, mas pensei em acrescentar mais duas que realmente aconteceram comigo:
O diário não tem ideia do que fazer .
Para um dos trabalhos em que eu estava trabalhando, decidi que estava absolutamente, sem dúvida, incluindo o código fonte (o objetivo principal do trabalho era a visualização de dados) e dados de exemplo para acompanhá-lo. Assim, juntamente com a submissão, 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 referido script R.
O diário, como se vê, só pode tomar suplementos eletrônicos se eles tiverem sido enviados para os 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 complemento. Eu poderia tê-lo hospedado na minha universidade, mas, como estudante de pós-graduação, sabia que perderia minha conta lá em ~ 1 ano - o código aberto não tem nenhuma 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 fosse inserido. Posso ver, principalmente porque a maioria das pessoas na minha área não usa algo como o GitHub, apenas decidindo que o esforço não valeria a pena o número de pessoas que o baixariam e que poderiam me enviar de qualquer maneira se realmente quisessem.
O diário não está interessado
Inseri alguns pequenos 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 provavelmente teria sido mais problemas do que valia a pena.
Ironicamente, se alguém tinha ir à procura do código, é (ou serão em breve) open source, mas eu já estava correndo na orla da 'Isto está crescendo distractingly técnica' e eu decidimos que o breve, 'fazer o revisor feliz 'mencionar era tudo o que eu ia fazer.
fonte
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 for importante ... o código fonte definitivamente deve ser disponibilizado! Quanto mais os resultados dependem da implementação ou dos métodos computacionais, mais importante se torna a publicação do código-fonte.
fonte
Gostaria de acrescentar alguns pontos ao tipo de código com o qual lido como quimiométrico (químico fazendo 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 internamente" 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 com a perda da novidade se o código tiver sido (parcialmente) tornado público antes.
Mesmo que o diário para o qual a publicação de códigos se destina não tenha objeção ao código já estar disponível publicamente antes, a pura preocupação do supervisor (ou de alguém do escritório de IP) pode ser suficiente para interromper a 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 pergunta diferente e fora de tópico aqui.)
De qualquer forma, no meu instituto, arquivamos dados brutos e código de análise de dados junto com o artigo. A política padrão não é (ainda?) Para disponibilizá-los ao público , 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 pseudo-código) do algoritmo do que ao envio do código-fonte real)
Muitos de 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 faz e observa no seu livro de laboratório.
fonte