Pourquoi les articles de recherche qui mentionnent un logiciel personnalisé ne publient-ils pas le code source? [fermé]

69

Y a-t-il une raison pour laquelle le code source du logiciel mentionné dans les documents de recherche n'est pas publié? Je comprends que les documents de recherche traitent plus de l’idée générale d’accomplir quelque chose que de détails de mise en œuvre, mais je ne comprends pas pourquoi ils ne publient pas le code.

Par exemple, cet article se termine par:

Résultats

Le système de traçage de lignes humaines est implémenté via l'infrastructure Qt en C ++ sous OpenGL et s'exécute sur une station de travail à processeur double cœur Intel à 2,00 GHz sans assistance matérielle supplémentaire. Nous pouvons tracer des lignes de manière interactive pendant que le système synthétise le nouveau chemin et la nouvelle texture.

Est-ce qu'ils gardent le code source fermé intentionnellement en raison d'une monétisation qu'ils ont l'intention de faire avec, ou à cause du droit d'auteur?

Antoine
la source
42
Pour la même raison, la plupart des articles ne disposent pas des données brutes (ne publiant que des "résultats" statistiquement déformés).
SK-logic
2
J'ai édité la question. Peut-être que "mention" n'est pas le meilleur mot. Dans certains cas, certains des points soulevés dans les journaux dépendent essentiellement du logiciel, mais le logiciel est un vaporware. Comme dans, pour évaluer correctement la validité du papier, quelqu'un doit être capable de faire fonctionner le logiciel.
Kaz
7
@JohnL Je dirais qu'un papier peut dépendre de manière critique du logiciel sans être sur le logiciel. Comme une propriété intéressante du monde qui est démontrée / trouvée en utilisant un outil logiciel. Si nous ne pouvons pas examiner l'outil, comment pouvons-nous savoir que la conclusion est correcte? (Ou plutôt: il est beaucoup plus facile de le valider si on peut voir l'outil!)
Andres F.
4
@Andres F - Une possibilité consiste à implémenter votre propre version du logiciel en utilisant les idées décrites dans le document. Bien que ce soit plus de travail, il a sans doute aussi plus de valeur - exécuter à nouveau la même implémentation ne fait que démontrer une nouvelle implémentation. Une nouvelle implémentation permet de démontrer que les idées elles-mêmes sont valables et non un détail de mise en œuvre. Les problèmes importants qui peuvent ne pas avoir été remarqués ou décrits auparavant peuvent être découverts lors de la nouvelle mise en œuvre.
Steve314
3
@ KonradRudolph, bien sûr, il ne sera pas toujours disponible. Il pourrait même ne plus être disponible dans quelques années à compter de la publication (bandes effacées et réutilisées, tout le groupe dissous, papier déchiqueté, etc.)
SK-logic

Réponses:

71

Plusieurs raisons me viennent à l’esprit.

  • Le code est trop gros pour l'article. Pendant une courte période, les projets intéressants ont été suffisamment courts pour être publiés avec le document qui les décrit. Cela peut encore arriver, mais de nombreux projets de taille suffisante pour être intéressants sont devenus trop importants pour être publiés avec les documents qui les décrivent.
  • Les hôtes publics ne sont ni gratuits ni durables. Jusqu'à récemment, les hôtes publics publics bon marché, durables et faciles d'accès n'étaient pas disponibles.
  • Publier un article est plus facile que publier un projet. Certaines personnes ont le temps de publier un article ou un projet, mais pas les deux.
  • Incitations liées au rôle. Il y a de nombreuses années, j'ai interrogé un collègue sur le développement de produits et sur les brevets. Comme pour les rédacteurs papier (think academia) et les développeurs open source, les récompenses sont orientées vers un produit du travail ou l’autre.
  • Motivation personnelle. Le désir de décrire des idées ou d’appliquer du code n’est pas toujours présent à parts égales chez la même personne. Bon nombre de mes professeurs ont admis ouvertement qu'ils n'avaient jamais codé beaucoup ou étaient dans de nombreuses années sans avoir codé couramment. De même, de nombreux développeurs souhaitent à peine écrire des commentaires dans leur code ou lorsqu'ils s'engagent dans un contrôle de code source.
  • La durabilité de l’hébergement du projet et du produit du travail est également un problème. Qui veut créer un lien quelque part qui pourrait disparaître d'ici quelques années et, par conséquent, diminuer la valeur du papier.
  • Tradition. Les éditeurs sont orientés vers la révision et la publication d'articles, mais ne sont peut-être pas prêts à effectuer la même évaluation pour les projets.
    De plus, les vues traditionnelles sur ce qui constitue un niveau raisonnable de reproductibilité varient selon les domaines. Un chimiste qui publie un article sur une nouvelle méthode de synthèse devrait écrire suffisamment de détails pour qu'un autre chimiste puisse effectuer la synthèse. On ne s'attendrait pas à ce qu'elle envoie les éduits et le produit au journal. Les lecteurs qui souhaitent utiliser / reproduire le document sont censés acheter leurs propres éduits et en faire la synthèse eux-mêmes dans leur laboratoire (bien qu'ils puissent demander à venir le visiter pour voir comment cela se fait en pratique). On ne s'attend pas non plus à ce qu'un biologiste attache ses nouvelles souris transgéniques au papier. Cette vue sur la reproductibilité correspond par exemple à une description (pseudo-code) de l'algorithme, par opposition à la livraison de l'implémentation réelle.
  • Le code nu peut être choquant . Il faut beaucoup moins de polissage pour relire un document de longueur papier que pour inspecter, réviser le code et assurer la qualité d'un projet. J'ai beaucoup de code que je serais plus à l'aise de vous parler que de vous montrer. Espérons que les choses avancent au point où nous allons tous écrire du beau code, mais si votre code était pressé, à peine ou ne fonctionnait pas complètement, vous pourriez être plus à l'aise de ne pas partager les fichiers exécutables ou la source.
  • Source fermée. Tout le monde n'a pas adopté l'open source. De nombreux articles traitent de travaux pour le DoD, de projets commerciaux ou de projets financés par des fonds privés, lorsque le projet est exposé au public, mais il existe encore des secrets commerciaux ou des avantages commerciaux qui pourraient être érodés par un code source ouvert ou ouvert. autres produits de travail.
  • Publiez d'autres travaux basés sur ce code. Si le code n'est pas publié, cela peut donner à l'auteur un avantage pour la publication de travaux ultérieurs. D'autres chercheurs concurrents devront peut-être réimplémenter les travaux, ce qui peut prendre un temps précieux.
DeveloperDon
la source
27
Si le papier dépend du code source, il ne doit pas être publié. Si vous ne pouvez pas publier le code, vous ne pouvez pas publier le document. Un papier qui dit "notre programme fait ces choses merveilleuses", et vous ne pouvez pas évaluer le papier sans exécuter ce programme, le papier devient alors une brochure publicitaire pour certains logiciels.
Kaz
3
En accord total avec Kaz - si vous souhaitez effectuer une recherche entre pairs, vous avez besoin de quelque chose d'indisponible (données, code, etc.), cela ne devrait pas être accepté par une revue à comité de lecture. Presque tous les arguments mentionnés par DeveloperDon ont été valables également pour la diffusion des données ... mais il existe maintenant un mouvement plutôt important ces dernières années.
Joe
3
Très bonne publication. J'ajouterais également que, parfois, des scientifiques distincts recréant le logiciel eux-mêmes font partie de la répétabilité de l'expérience. Si cela ne fonctionne que comme 1 personne l'a codé, mais pas comme les autres…, alors les résultats peuvent être remis en question et les erreurs identifiées.
Jimbo Jonny
4
votre deuxième au dernier point est le plus fort
l -''''''''--------- '' '' '' '' '' '25
4
@AndresF. Le code est absolument la chose la moins importante dans un document. Un article est "Voici ce que j'ai fait; voici mes méthodes; voici mes résultats". Le code est une codification de la méthode et il devrait produire exactement les mêmes résultats. Si vous souhaitez reproduire les résultats du document mais utiliser le code du document, vous ne reproduisez rien. Ce que vous êtes censé faire est de lire leur section méthodes, de créer votre propre implémentation, puis d'écrire un article à ce sujet lorsque vous ne pouvez pas reproduire leurs résultats.
Tacroy
40

Lisez la présentation de Randall LeVeque sur "Les 10 principales raisons de ne pas partager votre code (et pourquoi vous devriez le faire de toute façon)" http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

Il affirme de manière convaincante que le code est analogue aux preuves en mathématiques et nous invite à envisager un monde dans lequel les preuves ne sont pas publiées, car elles sont trop longues, trop laides, ou ne fonctionnent pas dans les cas extrêmes, ou peuvent valoir la peine. l'argent, ou quelqu'un pourrait le voler ...

Fondamentalement, si vous faites de la science, alors vous devriez publier votre code. Sinon, vous faites de l'alchimie et vous pouvez retourner dans les âges sombres et mourir de peste en ce qui me concerne.

Spacedman
la source
7
+1 belle présentation. Je suis content qu'il y ait des gens qui poussent pour le changement :)
Andres F.
+1 Merci pour le lien; cela peut m'aider dans mes négociations en cours avec mon patron pour la publication de certains de nos codes en code source ouvert.
Frank
Word up! Une bonne analogie mérite un vote de ma part.
nullpotent
Je ne suis pas sûr que cette comparaison soit vraiment bonne pour le but ici. Je suis chimiste (je préférerais voir beaucoup plus de code publié), pas de mathématicien, mais les preuves que j'ai vues ne donnent généralement pas le moindre pas. Donc, à mon humble avis, ils correspondent plutôt à une description condensée de pseudo-codes de l’algorithme que le code source réel.
cbeleites
27

Généralement, les programmes utilisés pour produire les résultats des articles ne sont que des outils et seuls les résultats importent. Ils ne sont donc pas placés sur le document qui présente le contexte, la méthodologie, les résultats et une discussion à leur sujet.

Mais les résultats doivent être reproductibles. Et ensuite, lorsque les sources de données sur lesquelles le papier est basé sont accessibles au public, les programmes les transformant en résultats deviennent également nécessaires. Ils sont souvent placés "quelque part" sur le Web s'il ne soulève aucune question de brevet / droit d'auteur. Ou, au moins, les auteurs doivent vous envoyer les programmes si vous leur demandez.

temps
la source
2
Je ne vous pense pas que vous devez envoyer quelqu'un qui vous demande votre code précieux ... IMHO Cette réponse est fausse. Mais j'aimerais voir un monde de recherche où l'information est gratuite ...
Dirk
3
@ Dirk À ma connaissance, cela est relativement courant dans les études empiriques sur les logiciels. Dans la dernière soumission (non encore acceptée) de mon équipe dans ce domaine, l'un des relecteurs a explicitement demandé un accès public à nos données ainsi qu'à certains morceaux de code. Je ne comprends pas pourquoi le code devrait être si précieux. C'est (généralement) juste la réalisation des idées décrites dans le document. La publication des programmes permet au lecteur de vérifier si nos idées sont traduites correctement en actions.
mgoeminne
1
Hmm, vous savez donc (a) qui est votre critique et (b) donnez votre code et vos données à quelqu'un qui pourrait être en concurrence directe avec vous?
Dirk
1
Pas vraiment parce que (a) Les réviseurs demandent à publier le code dans un endroit où ils peuvent accéder anonymement (ou l'authentification est effectuée par le journal) (b) Puisque votre article est publié, les autres chercheurs peuvent utiliser franckly la même méthodologie / les mêmes outils pour répliquer votre étude sur un autre ensemble de données ou même sur le même ensemble de données. Les réplications sont moins prestigieuses que le papier d'origine, elles citent votre travail et offrent une validation solide à votre papier. Les auteurs originaux sont donc heureux de laisser les autres faire tout ce travail pour eux.
mgoeminne
@ Paul Je ne vois pas le lien avec la publication du code source. Quoi qu'il en soit, les bons rédacteurs font attention aux notes rédigées par les relecteurs pour justifier leurs décisions. Par conséquent, les mentions telles que "c'est des conneries" ne sont pas prises en compte. Si l'éditeur estime que les recommandations des réviseurs ne sont pas suffisamment pertinentes, il demande l'avis d'un autre expert. Les étudiants des cycles supérieurs ne participent pas au processus de révision. Et si vous ne pouvez pas laisser votre papier accepté après quelques années de soumission, vous devriez envisager que ce papier (ou son contenu) ne soit pas si bon.
Mgoeminne
14

Ce n'est pas une source fermée. Le logiciel n'a tout simplement pas été publié.

Réponse courte:

Il existe plusieurs raisons pour ne pas publier le logiciel, mais il est rare de publier le logiciel en mode source fermée.

Longue réponse:

Source fermée signifie que le logiciel a été publié et que le code source ne l’a pas été. Mais le cas commun est que ni le logiciel ni le code source n’ont été publiés .

D'après mon expérience (je travaille dans la science de l'atmosphère), les auteurs sont très heureux si vous les contactez et demandez si vous pouvez obtenir leur logiciel (y compris le code source, bien sûr) pour effectuer des recherches. Si je vais écrire un article avec un projet basé sur le leur, ils en obtiendront au moins une citation (bon!), Mais probablement un article de co-auteur (car bien sûr, ils ne l'ont pas fait.) t documenter leur logiciel afin que quelqu'un puisse l'utiliser sans leur aide). Un article de co-auteur relativement bon marché, donc c'est encore mieux .

La vraie question est:

Pourquoi ne publient-ils pas le logiciel?

Il y a plusieurs raisons à cela:

  • Le logiciel publié a besoin de documentation. Habituellement, les gens n'aiment pas écrire de la documentation.
  • Les logiciels publiés peuvent attirer des utilisateurs. Les utilisateurs peuvent avoir des questions. Cela prend du temps (mais voir ci-dessus).
  • Les logiciels publiés peuvent nécessiter une maintenance non triviale.
  • La publication d'un logiciel nécessite un hébergement.

La liste pourrait être plus longue. Cela mérite d'être une question distincte, sur Academia.SE, pas ici.

(Notez que dans mon groupe, nous publions notre logiciel - sous licence GPL )

gerrit
la source
Il peut également être possible de publier le code, mais sous une licence qui ne permet pas la modification.
Asmeurer
Je n'avais même pas pensé à cette situation où les auteurs ne publieraient qu'une version compilée simplement pour prouver que le logiciel existe réellement, car cela n'aide pas à comprendre comment ils l'ont fait - à la façon dont je veux dire les détails d'implémentation .. J'aime lire les sources code!
Alecail
8

Cela peut sembler cynique, mais selon mon expérience, les documents de recherche ne sont pas écrits pour être faciles à comprendre ni à reproduire. Au lieu de cela, dans la communauté des chercheurs, il est plus important d’avoir un article qui semble très scientifique. Pour cette raison, la plupart des auteurs transforment leur code en formules mathématiques et tentent de prouver que leur algorithme est mathématiquement correct. Généralement, le nombre de pages d'un tel article est limité, de sorte qu'il ne reste plus d'espace pour publier le code. Bien entendu, cela n’empêcherait aucun auteur de se lier au code complet avec une URL ...

On pourrait supposer que si le code n’est pas publié, les auteurs veulent soit métamorphoser leurs résultats, soit (ce que je pense personnellement plus souvent), ils ont peur que les gens voient que leur recherche n’est pas aussi impressionnante qu’ils le prétendent. Les résultats ne s'appliquent souvent qu'à un nombre très limité de cas.

En outre, j'ai vu que d'un simple programme / algorithme, plusieurs documents de recherche sont dérivés. Si le code était publié, il serait difficile d’écrire d’autres documents sur le même sujet. Donc, la connaissance est retenue afin de la publier au fil du temps en petites tranches.

Gardez toujours à l'esprit que dans les universités, ce ne sont pas tant les résultats ou l'applicabilité de la recherche qui importent que le nombre d'articles que vous publiez. C'est triste mais vrai.

codingFriend1
la source
13
Ceci étant dit, essayez de demander aux chercheurs! Parfois, ils vous fourniront du code source.
Lucina
3
Je ne pense pas que vous soyez totalement juste ici: "Au lieu de cela, dans la communauté de la recherche, il est plus important d'avoir un article qui paraisse et qui a l'air très scientifique.". Cela implique qu'il n'y a aucune valeur pour le contenu sous-jacent, presque parce que vous ne pouvez pas le comprendre car il a l'air scientifique. Le nombre d'articles que vous publiez est presque sans importance si personne ne s'intéresse beaucoup au contenu. À mon avis, cette réponse parle de vos préjugés plutôt que de la réalité.
Temptar
2
@temptar Eh bien, je suis peut-être un peu biaisé. Ce qui me frappe le plus, c’est que la plupart des chercheurs ne sont évidemment pas disposés à décrire leurs travaux de manière facile à comprendre. Un jour, un professeur qui, après m'avoir expliqué un algorithme, a ajouté: "Mais dans l'article, nous écrirons ceci plus compliqué pour le rendre plus scientifique".
codingFriend1
6
@ codingFriend1 - vous ne pouvez pas et ne devriez pas généraliser sur la base d'une expérience unique. C'est une approche profondément non scientifique. Vous devez déterminer le public cible d'un spécialiste de la recherche et, dans de nombreux cas, ce ne sont pas les personnes qui ont besoin du genre d'explication que vous jugez nécessaire. C’est la raison pour laquelle nous avons des communications scientifiques: établir un lien avec les non-spécialistes.
Temptar
3
Je soutiens la réponse de codingFriend1. C’était une critique courante adressée à la communauté scientifique dans laquelle je vis, et plus particulièrement à mon université (qui est pourtant la meilleure du pays): les scientifiques sont poussés à publier des articles, le plus exotique le meilleur. "Publier ou périr". Les scientifiques des régions que je connais moins bien ont également rapporté cela. Désolé, mais dans de nombreux endroits, c'est la vérité triste et répandue.
Andres F.
7

À part l’intention de monétiser, je ne vois pas de bonne raison pour laisser le code source en dehors des documents de recherche. Il existe un petit mouvement qui propose de fournir le code source en règle générale pour la publication de recherches portant sur des logiciels d’une manière ou d’une autre. Vous pouvez en lire plus à ce sujet, il s'appelle le Manifeste du code scientifique .

hulkmeister
la source
1
+1 pour le lien! Cela incarne pleinement ma conviction de ce que devraient être la science et la recherche.
Andres F.
6

Les réponses ci-dessus manquent quelques raisons pratiques fréquemment rencontrées dans Computer Graphics (le domaine dans lequel le document mentionné par l'auteur a été publié). La publication de code varie considérablement entre les champs de CS - par exemple, dans Machine Learning, le code est généralement publié. Dans Human Computer Interaction, le code n’est presque jamais publié.

J'ai sorti un peu de code dans Computer Graphics, et bien que je ne pense auteurs devraient libérer leur code, il y a beaucoup de simples raisons non-conspiration théorie pourquoi ils ne le font pas . Par exemple

1) La plupart des projets de recherche en infographie impliquent une collaboration entre plusieurs chercheurs, souvent issus d'institutions différentes, chacun apportant une pièce du puzzle (algorithmes, bibliothèques, etc.). Pour publier le code de travail, tous les chercheurs doivent accepter. C'est rarement une simple discussion et il est généralement plus facile d'éviter le problème.

2) Souvent, le code d'un article est intégré à une base de code plus grande en cours de développement dans un laboratoire. Cette base de code contiendra d'autres travaux non publiés. Séparer le code pour un seul projet représente beaucoup de travail, souvent sans aucun avantage immédiat pour les personnes qui doivent le faire (voir l'incitation ci-dessous).

3) Les universités ont souvent des droits de propriété intellectuelle sur le code. Par conséquent, il est nécessaire de contacter un "bureau des innovations" qui vous rendra la vie infiniment difficile, souhaitant que vous documentiez "l'invention" pour pouvoir la breveter, etc., avant que vous ne l'utilisiez en source. Dans certains cas, l’université peut même refuser l’autorisation de publier la source (ceci varie d’un établissement à l’autre et est compliqué par (1))

4) De nombreuses recherches en infographie sont effectuées par les entreprises. Dans ce cas, les auteurs ne sont pas non plus propriétaires du code et doivent obtenir la permission des avocats pour publier le code. Les avocats ont peu ou pas envie de dire oui.

5) Il n'y a aucune incitation à publier du code. La plupart des codes de recherche en infographie ne sont jamais utilisés par quiconque. Même si c'est le cas, vous n'obtenez généralement qu'un accusé de réception pour le code à usage général (sans valeur pour votre CV). Si vous avez de la chance, vous obtiendrez une citation. Les comités d'embauche et les agences de subvention ne se soucient généralement pas du moment où vous publiez votre code. Ainsi, le temps passé à préparer le code pour la publication est un temps perdu qui aurait pu être passé sur un autre papier. (Il y a des gens qui essaient activement de changer cela dans Computer Graphics).

6) Il existe des incitations à ne pas publier de code. Le code peut parfois se transformer en start-up, être concédé sous licence à des sociétés existantes, etc. Ceci finance la recherche future. Nous devons tous manger.

Ryan Schmidt
la source
# 2 est très important. Séparer le code pertinent pour un document peut représenter un énorme travail, mais une fois que vous l’avez fait, vous pouvez le trouver hors contexte (c’est-à-dire loin des 100 autres outils, bibliothèques et configurations personnalisées de le laboratoire), il est essentiellement sans valeur et impossible à comprendre ou à utiliser. De plus, le "code de recherche" est souvent très fragile, conçu juste assez pour prouver le sens d'un document, et non pour en faire un système logiciel robuste, et le chercheur n'a pas le temps ni l'envie de le corriger suffisamment pour le modifier. un mal de tête sévère à quelqu'un d'autre.
Larry Gritz
5

Ça dépend. Une personne qui écrit un document, ou son superviseur, décide de ce qui doit être fait avec le code source. Parfois, les gens font du projet une source ouverte.

Parfois, les projets sont généralement financés par des entreprises, ce qui signifie que ce sont leurs biens. Dans ces cas, l'auteur du papier n'est pas autorisé à montrer le code.

BЈовић
la source
3

C'est généralement une question de limites de pages. Si l'algorithme est excessivement court, il est souvent représenté, au moins sous forme de pseudocode, dans l'article. Par ailleurs, si la version imprimée du code sous-jacent ne contient même qu'une poignée de pages, l’impression du code ne laisserait aucune place à la viande de l’article. Un article de journal de dix pages est un long article.

Ne pas rendre la source disponible crée un potentiel de fraude. En raison de ce potentiel, de nombreuses revues exigent maintenant que les auteurs soumettent leur code source en tant qu’information supplémentaire (qui peut être obtenue à partir de la revue si vous y avez accès; des frais d’abonnement élevés peuvent être impliqués). Un autre journal demande aux auteurs de divulguer leur code source à toute personne qui le demande. Pourtant, d'autres journaux sont encore à l'ère sombre; le code source n'est pas requis pour la soumission et les auteurs ne sont pas tenus de le publier.

Le plus simple est de demander aux auteurs s’ils peuvent vous fournir le code source. Les adresses électroniques des auteurs sont généralement répertoriées dans la plupart des journaux.

David Hammen
la source
1
Je pense que le code source étant disponible pour révision, il n'est pas nécessaire que son texte intégral soit inclus dans l'article. :) commettre une véritable erreur. Surtout si les codeurs étaient des scientifiques et non des programmeurs!
Andres F.
3

Mon expérience scientifique (5 articles publiés) montre que souvent, le journal n’exige pas que le code qui a été utilisé pour générer les résultats soit publié. Cela ne veut pas dire que les journaux n'accepteraient pas les scripts. De nombreuses revues autorisent le matériel supplémentaire en ligne. Certaines revues axées sur des algorithmes et tels (par exemple, Ordinateurs et géosciences) vous demandent d’ajouter la source d’un algorithme, mais il s’agit plus d’une exception que d’une règle.

En plus de la culture des revues, pour les scientifiques, le code n’est qu’un moyen d’atteindre un but. Beaucoup ne sont pas des développeurs de logiciels professionnels. Parce que beaucoup considèrent le code comme un simple outil d'expression scientifique, ils ne ressentent pas l'urgence de publier également le code. En outre, le polissage de votre code au point de le publier nécessite beaucoup de travail. Un scientifique est payé pour faire de la science, pas pour écrire un logiciel.

Paul Hiemstra
la source
Mais le logiciel est en quelque sorte la preuve. C’est l’essentiel de l’informatique: les programmes sont des preuves. Je pense que c'est soit un cas de confiance insuffisante dans les résultats, soit un malentendu culturel quant à l'importance de produire une preuve tangible de votre recherche.
Andres F.
1
Je ne parlais pas de la science informatique, mais de la science en général. Dans la CS théorique, beaucoup de gens travaillent sur des algorithmes et des preuves dans un contexte mathématique. Le logiciel n'est qu'une implémentation, une réflexion après coup.
Paul Hiemstra
Si votre code est une note de bas de page dans le document, je suis d'accord. Si c'est une sorte de vérification et a sa propre section, si petite soit-elle, alors elle fait partie de la preuve ou du moins de la validation. Si vous ne publiez pas le code, il est évident que ce n'est pas pertinent et vous pouvez également supprimer toutes les mentions de votre document!
Andres F.
2

Plus souvent qu'autrement, le programme actuel n'est qu'un outil pour arriver à la fin, plutôt que le produit à part entière. Donner des détails complets sur le code source reviendrait à fournir un dessin complet du stylo utilisé pour signer le rapport et / ou des schémas du PC.

Cela dit, le code source sera disponible, en particulier lorsque l'accord de non-divulgation (NDA), sous quelque forme que ce soit, étant donné qu'il existe une propriété intellectuelle inhérente au programme.

Si le code vous intéresse réellement, je suggère que le commentaire de @Buttons soit le meilleur conseil: demandez-leur :)

Andrew
la source
1

Beaucoup dépend de la raison pour laquelle le code a été écrit. S'il s'agissait de démontrer un point, il se pourrait bien qu'il ne soit pas optimisé et donc qu'il ne soit pas idéal qu'il soit libéré. Si les concepts et la méthodologie sous-jacents sont valides, il devrait être possible de recréer le résultat du code à partir de zéro. Il peut aussi y avoir des problèmes de droits d'auteur et de propriété.

En principe, il n'est pas techniquement impossible de publier le code, mais les raisons pour lesquelles il pourrait ne pas être publié sont variées. Il n’ya probablement pas de réponse simple à cette question pour cette raison. Dans des cas spécifiques, vous pourriez peut-être demander aux chercheurs concernés.

Temptar
la source
1

Le document que vous avez cité fait déjà 28 pages et la plus grande partie du contenu concerne les décisions de conception liées à la résolution du problème (indiqué dans le titre).

Le code est la dernière étape pour valider la conception. Ce n’est pas anodin, mais ce n’est pas la partie qui ajoute de la valeur aux résultats du document, en particulier si vous tenez compte de la place qu’il occuperait.

Tous les cas ne sont pas identiques. Certains articles donnent du code source, ou du moins un pseudo-code. Certains éditeurs ne le permettent pas. Certains le permettent, mais à cause de l'espace, les auteurs ne l'incluent pas. Un journal dans lequel j'ai publié le code source l'a formaté en tant que "chiffres" et la version électronique l'a sous forme de données d'image, même si je l'ai soumis sous forme de texte.

Fuhrmanator
la source
1

Les incitations comptent et les incitations des chercheurs consistent généralement à s’assurer qu’elles peuvent produire un nombre continu de communications s’appuyant les unes sur les autres. Les étudiants diplômés ont généralement besoin de 3 à 5 articles publiés qu'ils peuvent transformer en chapitres individuels de leur thèse afin d'obtenir leur diplôme. Les professeurs débutants doivent générer autant de publications que possible avant l'examen de leur mandat. Pour cette raison, la plupart des articles académiques sont vraiment des articles nen série. Par exemple, le document auquel vous faites référence est basé sur un document publié par le même groupe un an auparavant et traite du terrain que le prochain document est susceptible de couvrir.

La publication du code source permet potentiellement à un autre chercheur appartenant à un groupe différent de produire du papier n+1avant que l'auteur original ne réalise ou du moins produise un article couvrant une fraction importante du terrain que l'auteur espérait couvrir dans le cadre de ce volet de recherche. Si cela se produit, l'étudiant diplômé pourrait facilement se retrouver à passer 6 à 12 mois supplémentaires dans ses études supérieures afin de produire suffisamment de résultats de recherche pour pouvoir obtenir son diplôme. Le membre du corps professoral peut se retrouver avec un article de moins publié lorsque le temps de révision du mandat arrive. Ces deux aspects sont évidemment très préjudiciables à la carrière du chercheur. Ajoutez à cela que les applications académiques font souvent partie des efforts de recherche de plusieurs personnes au sein d'un groupe de recherche (directement ou parce qu'elles partagent certains composants) et que le groupe de recherche fait pression pour ne pas publier de code susceptible de nuire à quelqu'un qui vous travaillez avec tous les jours.

Vous rencontrez souvent des discussions de ce type dans des domaines où la collecte de données brutes prend beaucoup de temps et est très distribuée. En astronomie, par exemple, un groupe de recherche peut passer des années à rassembler des données avant de disposer de suffisamment d’informations pour publier un article. Mais ils utiliseront ensuite ces données pour produire une série de documents. Les groupes de recherche sont très réticents à partager plus de données que nécessaire, car il devient trop facile pour d’autres groupes de s’échapper du temps qu’ils avaient investi pour collecter les données afin de récolter les fruits de leur analyse.

Éventuellement, une grande partie de ce code sera publiée, tout comme les données astronomiques. Cela arrive souvent lorsque l'auteur atteint la fin de cette série d'articles ou lorsque la plupart des groupes de recherche travaillant sur des sujets similaires ont des moteurs similaires, de sorte que la publication du code ne confère plus d'avantage concurrentiel à un nouveau chercheur.

Ce serait idéal pour la science si les données et le code étaient publiés plus rapidement. Mais cela nuirait souvent au chercheur scientifique et c’est à ce prix que les incitations importent.

Justin Cave
la source
"La publication du code source permet potentiellement à un autre chercheur appartenant à un groupe différent de produire le document n + 1 avant que l'auteur original ne produise ou du moins de rédiger un document couvrant une fraction importante du terrain que l'auteur s'attendait à couvrir dans le cadre de cette étude. flux de recherche. " Cela ne me semble pas si facile. La plupart des gens (y compris moi-même) auraient du mal à comprendre le type de code écrit par les chercheurs, sans l'aide des auteurs, sans parler de son extension. Savez-vous des cas où cela s'est réellement produit?
Faheem Mitha
1

En tant que personne qui a fait cela (du côté des étudiants) à plusieurs reprises dans le passé: souvent, les professeurs qui écrivent le journal ne voient même jamais le code source eux-mêmes. Ils demanderont à leurs étudiants diplômés d'écrire le code et de ne demander ensuite que l'exécutable final (ou même simplement une confirmation du résultat) une fois terminé.

De plus, le code écrit n’est souvent pas très lisible, car les étudiants l’ont simplement haussé pour le faire et parce que (même s’ils sont très brillants), les étudiants diplômés qui n’ont aucune expérience du monde réel n’ont pas tendance à être les meilleurs codeurs du monde. ...

BlueRaja - Danny Pflughoeft
la source
1

La plupart des raisons auxquelles je peux penser ont déjà été évoquées ici, mais je pensais en ajouter deux autres qui m’étaient arrivées:

Le journal n'a aucune idée de ce qu'il faut faire .

Pour l'un des documents sur lequel je travaillais, j'ai décidé que j'allais absolument, sans aucun doute, inclure le code source (l'objectif principal du document étant la visualisation des données) et des exemples de données qui l'accompagnaient. Donc, avec la soumission, j'ai joint les suppléments électroniques 1 et 2 - un script R avec mon code et un fichier CSV avec les données nécessaires pour ledit script.

Il s'avère que le journal ne peut prendre des suppléments électroniques que s'ils ont été intégrés dans des fichiers Word. Après avoir essayé pendant une bonne partie de la journée d'obtenir le script R sous cette forme, j'ai abandonné et j'ai décidé de ne pas inclure le code en tant que supplément. J'aurais pu l'organiser à mon université, mais en tant qu'étudiant diplômé, je savais que j'allais perdre mon compte là-bas dans environ un an. L'open source n'est d'aucune utilité s'il est immédiatement dépassé par Linkrot.

J'ai fini par l'héberger sur GitHub et y mettre une référence, mais c'est parce que je voulais vraiment que le code soit intégré. Je peux le voir, d'autant plus que la plupart des gens de mon domaine n'utilisent pas quelque chose comme GitHub, seulement décidant que l'effort ne valait pas la poignée de personnes qui le téléchargeraient et qui pourraient de toute façon m'envoyer un email s'ils le souhaitent vraiment.

Le journal n'est pas intéressé

J'ai inséré quelques petits détails sur le code dans un article à la demande d'un critique, mais c'est un journal clinique (lire: aucun code), il n'autorise pas les suppléments électroniques, et encore une fois, l'ajout du code source aurait probablement été plus de problèmes que cela ne valait la peine.

Ironie du sort, si quelqu'un ne va chercher le code, il est (ou sera bientôt) open source, mais j'étais déjà en cours d' exécution sur le bord de « Ceci est de plus en plus technique distraitement » et moi avons décidé que le mémoire, « faire l'examinateur heureux 'mention était tout ce que j'allais faire.

Fomite
la source
0

Plusieurs fois, la mise en œuvre (c’est-à-dire que le logiciel importe peu) mais de plus en plus, la mise en œuvre affecte les résultats.

A chaque fois que l'implémentation compte ... le code source doit absolument être disponible! Plus les résultats dépendent de la mise en œuvre ou des méthodes de calcul, plus il est important de publier le code source.

Trevor Boyd Smith
la source
En ce qui concerne qui / où va stocker le code source. Idéalement, le journal dans lequel l'article est publié stockera l'intégralité du code source. Cependant, la plupart des revues les plus importantes ne stockent ni l'article ni le code source. Si le journal n’a pas la capacité de stocker le code source complet, il incombe à l’auteur de trouver un emplacement de stockage adressable sur le Web pour le code source.
Trevor Boyd Smith
0

J'aimerais ajouter quelques points sur le type de code auquel je suis confronté en tant que chimiomètre (chimiste effectuant l'analyse de données):

  • Les personnes qui écrivent du code d'analyse de données (comme je le fais) sont relativement peu nombreuses comparées aux personnes qui utilisent ce code. "Code personnalisé écrit en interne" ne signifie pas que les auteurs l'ont écrit - pourrait être le code de collègues si les auteurs ne peuvent pas le publier.

  • Une publication séparée du code peut être planifiée et son auteur (ou son superviseur) peut craindre que la nouveauté ne soit perdue si le code a déjà été (partiellement) rendu public.
    Même si le journal dans lequel la publication du code est destinée ne s'oppose pas à ce que le code ait été rendu public auparavant, le simple souci du superviseur (ou de quelqu'un de l'office de la propriété intellectuelle) peut être suffisant pour arrêter la publication du code.

  • Le code d'analyse de données est souvent adapté aux données. Cela n'a pas beaucoup de sens sans les données. (Vous pouvez faire valoir que les données devraient être publiées de toute façon, mais c'est une question différente et hors sujet ici.)
    De toute façon, à mon institut, nous archivons les données brutes et le code d'analyse des données avec le papier. La politique par défaut n’est pas (encore?) De les rendre publiques , mais elles seraient certainement disponibles sur demande.

  • (La vision traditionnelle de la reproductibilité en chimie correspond plutôt à une description (éventuellement en un pseudo-code) de l'algorithme qu'à l'envoi du code source réel)

  • Beaucoup de mes collègues utilisent des outils interactifs pour analyser leurs données, sans enregistrer les étapes de l'analyse. Il n'y a donc pas de code source pouvant être publié. L'analyse de données correspond moins à une programmation qu'à une approche de laboratoire: vous faites des choses et écrivez ce que vous faites et observez dans votre cahier de laboratoire.

cbéléites
la source
Cette réponse est du point de vue de l'analyse des données, donc plutôt d'un créneau particulier. Cependant, cette question est liée à academia.SX, de sorte que les non-informaticiens peuvent lire ceci.
cbeleites