Por que os trabalhos de pesquisa que mencionam software personalizado não liberam o código-fonte? [fechadas]


69

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?


42
Pela mesma razão, a maioria dos artigos não possui dados brutos (publicando apenas "resultados" estatisticamente distorcidos).
SK-logic

2
Eu editei a pergunta. Talvez "menção" não seja a melhor palavra. Em alguns casos, alguns dos argumentos apresentados nos documentos dependem criticamente do software, mas o software é um vaporware. Para avaliar adequadamente a validade do trabalho, alguém precisa ser capaz de executar o software.
Kaz

7
@JohnL Eu diria que um artigo pode depender criticamente do software sem falar sobre ele . Como uma propriedade interessante do mundo que é demonstrada / encontrada usando uma ferramenta de software. Se não podemos revisar a ferramenta, como podemos saber que a conclusão está correta? (Ou melhor: é a maneira mais fácil para validá-lo se pudermos ver a ferramenta!)
Andres F.

4
@ Andrés F - Uma possibilidade é implementar sua própria versão do software usando as idéias descritas no artigo. Embora isso seja mais trabalhoso, também pode ter mais valor - executar a mesma implementação novamente apenas demonstra a única implementação novamente. Uma nova implementação ajuda a demonstrar que as próprias idéias são válidas, e não um acaso de alguns detalhes da implementação. Problemas significativos que podem não ter sido notados ou descritos antes podem ser descobertos durante a reimplementação.
Steve314

3
@KonradRudolph, é claro que nem sempre estará disponível. Pode até ficar indisponíveis em um par de anos desde a publicação (fitas apagado e usado re-, todo o grupo se desfez, papel picado, etc.)
SK-lógica

Respostas:


71

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

  • O código é muito grande para o artigo. Por um curto período de tempo, projetos interessantes foram curtos o suficiente para serem publicados com o artigo que os descrevia. Isso ainda pode acontecer, mas muitos projetos de tamanho suficientemente grande para serem interessantes cresceram demais para serem publicados com os trabalhos que os descrevem.
  • Hosts públicos não gratuitos ou duráveis. Até recentemente, hosts públicos baratos, duráveis ​​e de fácil acesso não estavam disponíveis.
  • Publicar um artigo é mais fácil do que publicar um projeto. Algumas pessoas têm tempo para publicar um artigo ou projeto, mas não os dois.
  • Incentivos vinculados ao papel. Muitos anos atrás, perguntei a um colega sobre desenvolvimento de produtos e patentes e soube que a maioria das pessoas lá fazia uma ou outra. Assim como os escritores de papel (pense na academia) e os desenvolvedores de código aberto, as recompensas são voltadas para um produto de trabalho ou 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 eles nunca codificaram muito, ou estavam muitos anos longe de terem codificado 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 quer criar um link para algum lugar que possa ter desaparecido daqui a alguns anos e, como resultado, diminui o valor do papel.
  • Tradição. Os editores são orientados a revisar e publicar artigos, mas podem não estar prontos para fazer a mesma avaliação dos projetos.
    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.
  • Código nu pode ser chocante . É preciso muito menos polimento para revisar um documento de tamanho de papel do que para inspeção de código, revisão de código e garantia de qualidade de um projeto. Eu tenho um monte de código que eu ficaria mais confortável falando sobre você do que mostrando. Espero que as coisas estejam avançando para um ponto em que todos escreveremos um código bonito, mas se o seu código foi apressado, mal ou não funciona completamente, você pode se sentir mais confortável em não compartilhar os executáveis ​​ou a fonte.
  • Fonte fechada. Nem todo mundo adotou o código aberto. Muitos artigos são escritos sobre trabalhos para DoD, projetos comerciais ou projetos de financiamento privado, onde há benefícios da exposição do projeto ao público, mas ainda existem segredos comerciais ou as primeiras vantagens do mercado que podem ser corroídas pelo código aberto ou outros produtos de trabalho.
  • Publique mais trabalho com base nesse código. Se o código não for publicado, pode 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.

27
Se o artigo depende do código fonte, ele não deve ser publicado. Se você não pode publicar o código, não pode publicar o documento. Um artigo que diz "nosso programa faz essas coisas maravilhosas", e você não pode avaliar o artigo sem executá-lo, então o artigo limita-se a ser uma brochura publicitária para algum software.
Kaz

3
Em total acordo com Kaz - se, para revisar a pesquisa por pares, você precisa de algo que não está disponível (dados, código, etc.), não deve ser aceito por um periódico revisado por pares. Quase todos os argumentos mencionados pelo DeveloperDon também são válidos para o lançamento de dados ... mas agora há um movimento bastante grande nos últimos anos em direção a ele.
25412 Joe

3
Ótimo post. Eu também acrescentaria que, às vezes, cientistas separados que recriam o software por conta própria fazem parte da repetibilidade do experimento. Se funcionar apenas da maneira que uma pessoa o codificou, mas não da maneira como os outros o codificam ... então os resultados podem ser questionados e os erros podem ser identificados.
Jimbo Jonny

4
seu segundo ao último ponto é o mais forte
l

4
@AndresF. Código é absolutamente a coisa menos importante em um artigo. Um artigo é "Aqui está o que eu fiz; aqui estão meus métodos; aqui estão meus resultados". O código é uma codificação do método e deve produzir exatamente os mesmos resultados. Se você deseja reproduzir os resultados do trabalho, mas usar o código do trabalho, não reproduziu nada; o que você deve fazer é ler a seção de métodos, criar sua própria implementação e, em seguida, escrever um artigo sobre isso quando você não conseguir reproduzir os resultados.
Tacroy

40

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.


7
+1 Ótima apresentação. Estou feliz por existirem pessoas empurrando para a mudança :)
Andres F.

+1 Obrigado pelo link; isso pode me ajudar nas negociações em andamento com meu chefe sobre a liberação de parte do nosso código como código-fonte aberto.
25412 Frank

Palavra! Uma boa analogia merece um voto meu.
Nulopotent 26/10/12

Não tenho certeza se essa comparação é realmente boa para o objetivo aqui. Sou químico (que prefere ver muito mais código publicado), não é matemático, mas as provas que vi normalmente não estão dando a cada passo. Então, IMHO eles correspondem antes a uma descrição condensada do pseudo-código do algoritmo do que o código-fonte real.
Cbeleites 17/10/2013

27

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.


2
Você não acha que precisa enviar alguém que peça seu código precioso ... IMHO Esta resposta está errada. Mas eu gostaria de ver um mundo de pesquisa onde a informação é livre ...
Dirk

3
@Dirk Até onde eu sei, isso é relativamente comum em estudos empíricos de software. No último envio (ainda não aceito) da minha equipe neste domínio, um dos revisores solicitou explicitamente acesso público aos nossos dados, bem como a alguns trechos de código. Não entendo por que o código deve ser tão precioso. É (geralmente) apenas a realização das idéias descritas no artigo. A publicação dos programas é uma maneira de permitir que o leitor verifique se traduzimos corretamente nossas idéias em ações.
mgoeminne

11
Hmm, para você saber (a) quem é seu revisor e (b) fornecer seu código e dados a alguém que possa estar em concorrência direta com você?
Dirk

11
Na verdade, não porque (a) Os revisores pedem para publicar o código em um local que eles possam acessar anonimamente (ou a autenticação é feita pela revista) (b) Desde que seu artigo é publicado, os outros pesquisadores podem usar francamente a mesma metodologia / ferramentas para replicar seu estudo em outro conjunto de dados ou mesmo no mesmo conjunto de dados. As réplicas são menos prestigiosas que o artigo original, elas citarão o seu trabalho e oferecem uma forte validação ao seu artigo. Portanto, os autores originais ficam felizes em deixar que os outros façam todo esse trabalho por eles.
mgoeminne

@ Paul Não vejo a conexão com a publicação do código fonte. De qualquer forma, bons editores prestam atenção às notas que os revisores escrevem para justificar suas decisões. Portanto, menções como "É besteira" não são levadas em consideração. Se o editor estima que as recomendações dos revisores não são relevantes o suficiente, ele pede a opinião de outro especialista. Os alunos de pós-graduação não participam do processo de revisão. E se você não pode permitir que seu artigo seja aceito após alguns anos de envio, você deve considerar que este artigo (ou seu conteúdo) não é tão bom.
Mgoeminne

14

Não é uma fonte fechada. O software simplesmente não foi publicado.

Resposta curta:

Existem vários motivos para não publicar o software, mas é incomum publicar o software de maneira fechada.

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 é:

Por que eles não publicam o software?

Há várias razões para isso:

  • O software publicado precisa de documentação. Geralmente, 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 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 )


Também pode ser possível publicar o código, mas sob uma licença que não permite modificações.
asmeurer 26/10/12

Eu nem tinha pensado nessa situação em que os autores publicariam apenas uma versão compilada apenas para provar que o software realmente existe, porque não ajuda a entender o que eles fizeram - pelo que eu quero dizer com detalhes da implementação. Adoro ler a fonte código!
Alecail #

8

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.


13
Dito isto, tente perguntar aos pesquisadores! Às vezes, eles fornecem o código-fonte.
Lucina

3
Eu não acho que você esteja sendo totalmente justo aqui: "Em vez disso, na comunidade de pesquisa, é mais importante ter um artigo que pareça e pareça muito científico". Isso implica que não há valor para o conteúdo subjacente, quase porque você não pode entendê-lo porque parece científico. O número de artigos que você publica é quase irrelevante se ninguém estiver muito interessado no conteúdo. Esta resposta, na minha opinião, fala mais dos seus preconceitos do que da realidade.
temptar

2
@temptar Bem, talvez eu seja um pouco tendenciosa. O que mais me impressiona é que a maioria dos pesquisadores obviamente não está disposta a descrever suas pesquisas de uma maneira fácil de entender. Certa vez, tive um professor que, depois de me explicar um algoritmo, acrescentou: "Mas no artigo escreveremos isso mais complicado para parecer mais científico".
CodigoFriend1

6
@ codingFriend1 - você não pode e não deve generalizar com base em uma única experiência. Essa é uma abordagem profundamente não científica. Você deve considerar quem é o público-alvo de um especialista em pesquisa e, em muitos casos, não são as pessoas que precisam do tipo de explicação que você considera necessário. É para isso que temos comunicações científicas - para fazer a ponte com os não especialistas.
temptar

3
Eu apoio a resposta do codingFriend1. Essa tem sido uma crítica comum, dirigida à comunidade científica em que moro, e especificamente à minha universidade (que ainda é a melhor do país): que os cientistas são pressionados a publicar artigos, quanto mais exóticos, melhor. "Publique ou pereça". Cientistas de áreas com as quais estou menos familiarizado também relatam isso. Desculpe, mas em muitos lugares é a verdade triste e generalizada.
Andres F.

7

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 .


11
+1 para o link! Ele incorpora totalmente minha crença no que ciência e pesquisa devem ser.
25812 Andres F.

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 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.


# 2 é muito significativo. Não apenas pode ser uma enorme quantidade de trabalho separar o código relevante para um artigo, mas, uma vez feito, você pode descobrir isso fora de contexto (ou seja, longe das outras 100 ferramentas, bibliotecas e configurações personalizadas de laboratório), é essencialmente inútil e impossível de entender ou usar. Além disso, o "código de pesquisa" geralmente é muito frágil, projetado apenas o suficiente para provar o objetivo de um artigo, não para criar um sistema de software robusto, e o pesquisador não tem tempo ou inclinação para corrigi-lo o suficiente para ser outra coisa senão uma forte dor de cabeça para qualquer outra pessoa.
Larry Gritz 30/10/12

5

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.


3

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.


11
Acho que o código-fonte disponível para revisão não requer que seu texto completo seja incluído no artigo real :) Não apenas pelo potencial de fraude, mas também acho útil que os revisores possam verificar novamente o que você não fez. cometer um erro genuíno. Especialmente se os codificadores fossem cientistas e não programadores!
Andres F.

3

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.


Mas o software é, de certa forma, a prova. É disso que se trata a ciência da computação: programas são provas. Acho que esse é um caso de confiança insuficiente nos resultados ou um mal-entendido cultural sobre a importância de realmente produzir uma prova de trabalho de sua pesquisa.
Andres F.

11
Eu não estava falando sobre ciência da computação, mas mais ciência em geral. No CS teórico, muitas pessoas trabalham em algoritmos e provas em sentido matemático. Software é apenas uma implementação, uma reflexão tardia.
Paul Hiemstra

Se o seu código é uma nota de rodapé no artigo, eu concordo. Se é algum tipo de verificação e possui sua própria seção, por menor que seja, faz parte da prova ou, pelo menos, da validação. Se você não publicar o código, ele claramente não é relevante e você poderá remover todas as menções do seu artigo!
Andres F.

2

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 :)


1

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.


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 (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.


1

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 nem 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+1antes 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.


"A publicação do código-fonte potencialmente permite que outro pesquisador em um grupo diferente produza o papel n + 1 antes que o autor original faça ou pelo menos produza um artigo que cubra uma fração significativa do terreno que o autor esperava cobrir como parte deste fluxo de pesquisa ". Isso não parece tão fácil para mim. A maioria das pessoas (inclusive eu) teria dificuldade em entender o tipo de código que os pesquisadores escrevem, sem a ajuda dos autores, e muito menos estendê-lo. Você conhece casos em que isso realmente aconteceu?
Faheem Mitha

1

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 ...


1

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.


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 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.


Em relação a quem / onde irá armazenar o código fonte. Idealmente, o periódico em que o artigo foi publicado armazenará a totalidade do código-fonte. No entanto, muitos dos periódicos mais importantes não armazenam o artigo e o código-fonte. Na IMO, se o diário não puder armazenar o código fonte inteiro, o autor é responsável por encontrar um local de armazenamento endereçável na Web para o código fonte.
Trevor Boyd Smith

0

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.


Esta resposta é do ponto de vista da análise de dados, portanto, um nicho específico. No entanto, essa questão está vinculada ao academia.SX, portanto, cientistas que não são da computação podem ler isso.
Cbeleites 17/10/2013
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.