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?
Réponses:
Plusieurs raisons me viennent à l’esprit.
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.
la source
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.
la source
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.
la source
Ce n'est pas une source fermée. Le logiciel n'a tout simplement pas été publié.
Réponse courte:
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:
Il y a plusieurs raisons à cela:
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 )
la source
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.
la source
À 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 .
la source
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.
la source
Ç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.
la source
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.
la source
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.
la source
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 :)
la source
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.
la source
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.
la source
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
n
en 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+1
avant 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.
la source
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. ...
la source
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.
la source
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.
la source
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.
la source