it-swarm.com.de

Warum veröffentlichen Forschungspapiere, in denen benutzerdefinierte Software erwähnt wird, den Quellcode nicht?

Gibt es einen Grund, warum der in Forschungsarbeiten erwähnte Quellcode von Software nicht veröffentlicht wird? Ich verstehe, dass es in Forschungsarbeiten mehr um die allgemeine Idee geht, etwas zu erreichen, als um Implementierungsdetails, aber ich verstehe nicht, warum sie den Code nicht veröffentlichen.

Zum Beispiel endet dieses Papier mit:

Ergebnisse

Das menschliche Strichzeichnungssystem wird über das Qt-Framework in C++ unter Verwendung von OpenGL implementiert und läuft auf einer 2,00-GHz-Intel-Dual-Core-Prozessor-Workstation ohne zusätzliche Hardwareunterstützung. Wir können interaktiv Linien zeichnen, während das System den neuen Pfad und die neue Textur synthetisiert.

Halten sie den Quellcode absichtlich geschlossen, weil sie eine Monetarisierung damit beabsichtigen oder weil sie urheberrechtlich geschützt sind?

69
alecail

Es gibt mehrere Gründe.

  • Code ist zu groß für Artikel. Für kurze Zeit waren interessante Projekte kurz genug, um mit dem Papier veröffentlicht zu werden, in dem sie beschrieben wurden. Dies kann immer noch passieren, aber viele Projekte, die groß genug sind, um interessant zu sein, sind zu groß geworden, um mit den Papieren veröffentlicht zu werden, die sie beschreiben.
  • Öffentliche Hosts nicht kostenlos oder dauerhaft. Bis vor kurzem waren keine billigen, dauerhaften und leicht zugänglichen öffentlichen Hosts verfügbar.
  • Das Veröffentlichen eines Papiers ist einfacher als das Veröffentlichen eines Projekts. Einige Leute haben Zeit, ein Papier oder ein Projekt zu veröffentlichen, aber nicht beide.
  • Anreize sind an die Rolle gebunden. Vor vielen Jahren habe ich einen Kollegen nach Produktentwicklung und Patenten gefragt und das Wort erhalten, dass die meisten Leute dort so ziemlich das eine oder andere getan haben. Wie bei Papierautoren (Think Academia) und Open Source-Entwicklern richten sich die Belohnungen nach dem einen oder anderen Arbeitsprodukt.
  • Selbstmotivation. Der Wunsch, Ideen zu beschreiben oder Code zu implementieren, ist nicht immer zu gleichen Teilen in derselben Person vorhanden. Viele meiner Professoren gaben offen zu, dass sie entweder nie sehr viel codiert haben oder viele Jahre davon entfernt waren, fließend codiert zu haben. In ähnlicher Weise möchten viele Entwickler kaum Kommentare in ihren Code schreiben oder sich zur Quellcodeverwaltung verpflichten.
  • Dauerhaftigkeit des Projekthostings und Arbeitsprodukt ist ebenfalls ein Problem. Wer irgendwo verlinken möchte, der in einigen Jahren verschwunden sein könnte, und infolgedessen den Wert des Papiers mindert.
  • Tradition. Verlage sind darauf ausgerichtet, Artikel zu überprüfen und zu veröffentlichen, sind jedoch möglicherweise nicht bereit, dieselbe Bewertung für Projekte vorzunehmen.
    Auch die traditionellen Ansichten über ein vernünftiges Maß an Reproduzierbarkeit variieren zwischen den Bereichen. Von einem Chemiker, der einen Artikel über eine neue Synthesemethode veröffentlicht, wird erwartet, dass er genügend Details aufschreibt, damit ein anderer Chemiker die Synthese durchführen kann. Es war nicht zu erwarten, dass sie die Edukte und das Produkt an das Tagebuch schickte. Von Lesern, die das Papier verwenden/reproduzieren möchten, wird erwartet, dass sie ihre eigenen Edukte kaufen und die Synthese selbst in ihrem Labor durchführen (obwohl sie möglicherweise darum bitten, das Labor zu besuchen, um zu sehen, wie es in der Praxis gemacht wird). Von einem Biologen würde auch nicht erwartet, dass er seine neuen transgenen Mäuse an das Papier anbringt. Diese Ansicht zur Reproduzierbarkeit entspricht z.B. Angabe einer (Pseudocode-) Beschreibung des Algorithmus im Gegensatz zum Versand der tatsächlichen Implementierung.
  • Nackter Code kann schockierend sein. Das Korrekturlesen eines Dokuments mit Papierlänge erfordert viel weniger Polieren als das Überprüfen des Codes, das Überprüfen des Codes und die Qualitätssicherung eines Projekts. Ich habe viel Code, von dem ich Ihnen lieber erzählen würde, als ihn Ihnen zu zeigen. Hoffentlich bewegen sich die Dinge zu einem Punkt, an dem wir alle schönen Code schreiben werden, aber wenn Ihr Code überstürzt war, kaum oder nicht vollständig funktioniert, ist es möglicherweise bequemer, die ausführbaren Dateien oder die Quelle nicht zu teilen.
  • Closed Source. Nicht jeder hat Open Source angenommen. Viele Artikel werden über Arbeiten für DoD, kommerzielle Projekte oder privat finanzierte Projekte geschrieben, bei denen es Vorteile bringt, das Projekt der Öffentlichkeit zugänglich zu machen, aber es gibt immer noch Geschäftsgeheimnisse oder erstmalige Marktvorteile, die durch Open-Sourcing des Codes oder erodiert werden könnten andere Arbeitsprodukte.
  • Veröffentlichen Sie weitere Arbeiten basierend auf diesem Code. Wenn der Code nicht veröffentlicht wird, kann dies dem Autor einen Vorteil bei der Veröffentlichung von Folgearbeiten verschaffen. Andere konkurrierende Forscher müssen möglicherweise die Arbeit neu implementieren, was wertvolle Zeit in Anspruch nehmen kann.
71
DeveloperDon

Lesen Sie die Präsentation von Randall LeVeque zu "Die 10 wichtigsten Gründe, Ihren Code nicht weiterzugeben (und warum Sie es trotzdem tun sollten)" http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

Er argumentiert überzeugend, dass Code analog zu Beweisen in der Mathematik ist, und lädt uns ein, eine Welt zu betrachten, in der Beweise nicht veröffentlicht werden, weil sie zu lang oder zu hässlich sind oder in den Edge-Fällen nicht funktionieren oder sich lohnen könnten Geld, oder jemand könnte es stehlen ...

Grundsätzlich sollten Sie Ihren Code veröffentlichen, wenn Sie Wissenschaft betreiben. Ansonsten machst du Alchemie und kannst für mich direkt in die dunklen Zeiten zurückfliegen und an der Pest sterben.

40
Spacedman

Im Allgemeinen sind die Programme, die zur Erstellung der Papierergebnisse verwendet werden, nur Werkzeuge, und nur die Ergebnisse sind von Bedeutung. Sie werden also nicht auf das Papier gesetzt, das den Kontext, die Methodik, die Ergebnisse und eine Diskussion über sie darstellt.

Die Ergebnisse müssen jedoch reproduzierbar sein. Und wenn die Datenquellen, auf denen das Papier basiert, öffentlich verfügbar sind, sind im Allgemeinen auch die Programme erforderlich, die sie in Ergebnisse umwandeln. Sie werden oft "irgendwo" im Web platziert, wenn keine Patent-/Urheberrechtsprobleme auftreten. Oder zumindest müssen die Autoren Ihnen die Programme senden, wenn Sie sie fragen.

27
mgoeminne

Es ist keine geschlossene Quelle. Die Software wurde einfach überhaupt nicht veröffentlicht.

Kurze Antwort:

Es gibt mehrere Gründe, die Software nicht zu veröffentlichen, aber es ist ungewöhnlich, die Software in einer geschlossenen Quelle zu veröffentlichen.

Lange Antwort:

Geschlossene Quelle bedeutet, dass die Software veröffentlicht wurde und die Quellcode nicht. Der häufigste Fall ist jedoch, dass weder die Software noch der Quellcode veröffentlicht wurden.

Nach meiner Erfahrung (ich arbeite in der Atmosphärenwissenschaft) freuen sich Autoren sehr, wenn Sie sie kontaktieren und fragen, ob Sie ihre Software (natürlich einschließlich Quellcode) für Forschungszwecke erhalten können. Wenn ich eine Arbeit mit einem Projekt schreibe, das auf ihrem basiert, werden sie zumindest ein Zitat daraus erhalten (gut!), Aber wahrscheinlich = Holen Sie sich ein mitverfasstes Papier heraus (weil sie ihre Software natürlich nicht dokumentiert haben, damit jemand sie ohne ihre Hilfe verwenden kann). Ein relativ billiges Co-Autor-Papier, das ist also noch besser.

Die eigentliche Frage ist:

Warum veröffentlichen sie die Software nicht?

Dafür gibt es mehrere Gründe:

  • Veröffentlichte Software benötigt Dokumentation. Normalerweise schreiben die Leute keine Dokumentation.
  • Veröffentlichte Software kann Benutzer anziehen. Benutzer können Fragen haben. Dies braucht Zeit (siehe oben).
  • Veröffentlichte Software erfordert möglicherweise eine nicht triviale Wartung.
  • Publishing-Software erfordert Hosting.

Die Liste könnte länger gemacht werden. Es verdient eine separate Frage, bei Academia.SE, nicht hier.

(Beachten Sie, dass in meiner Gruppe wir veröffentlichen unsere Software - lizenziert unter GPL )

14
gerrit

Das mag zynisch klingen, aber meiner Erfahrung nach sind Forschungsarbeiten nicht so geschrieben, dass sie leicht zu verstehen oder einfach zu reproduzieren sind. Stattdessen ist es in der Forschungsgemeinschaft wichtiger, einen Artikel zu haben, der sehr wissenschaftlich klingt und aussieht. Aus diesem Grund wandeln die meisten Autoren ihren Code in mathematische Formeln um und versuchen zu beweisen, dass ihr Algorithmus mathematisch korrekt ist. Normalerweise ist die Anzahl der Seiten für einen solchen Artikel begrenzt, sodass kein Platz mehr zum Veröffentlichen des Codes vorhanden ist. Dies würde natürlich keinen Autor darauf beschränken, mit einer URL auf den vollständigen Code zu verlinken ...

Man könnte annehmen, dass die Autoren, wenn kein Code veröffentlicht wird, entweder ihre Ergebnisse auf den neuesten Stand bringen wollen oder (was ich persönlich häufiger denke) befürchten, dass die Leute sehen würden, dass ihre Forschung nicht so großartig ist, wie sie behaupten. Oft gelten die Ergebnisse nur für eine sehr begrenzte Anzahl von Fällen.

Ich habe auch gesehen, dass aus einem einfachen Programm/Algorithmus mehrere Forschungsarbeiten hervorgegangen sind. Wenn Code veröffentlicht würde, wäre es schwierig, weitere Artikel zum gleichen Thema zu schreiben. Wissen wird also zurückgehalten, um es im Laufe der Zeit in kleinen Scheiben zu veröffentlichen.

Denken Sie immer daran, dass an Universitäten nicht so sehr die Ergebnisse oder die Anwendbarkeit der Forschung wichtig sind, sondern die Anzahl der von Ihnen veröffentlichten Artikel. Es ist traurig, aber wahr.

8
codingFriend1

Abgesehen von der Absicht, Geld zu verdienen, sehe ich keinen guten Grund, den Quellcode aus Forschungsarbeiten herauszulassen. Es beginnt eine kleine Bewegung, die vorschlägt, den Quellcode in der Regel für die Veröffentlichung von Forschungsergebnissen bereitzustellen, die in irgendeiner Weise, Form oder Form von Software abhängen. Sie können mehr darüber lesen, es heißt Science Code Manifesto .

7
hulkmeister

In den obigen Antworten fehlen einige praktische Gründe, die häufig in der Computergrafik auftreten (dem Bereich, in dem das vom Autor erwähnte Papier veröffentlicht wurde). Die Codefreigabe variiert stark zwischen den Feldern in CS. Beispielsweise wird beim maschinellen Lernen normalerweise Code veröffentlicht. In der Mensch-Computer-Interaktion wird Code fast nie veröffentlicht.

Ich habe ziemlich viel Code in Computergrafik veröffentlicht, und obwohl ich denke, dass Autoren sollten ihren Code veröffentlichen, gibt es viele einfache, nicht verschwörungstheoretische Gründe, warum sie nicht). Zum Beispiel

1) Die meisten Forschungsprojekte im Bereich Computergrafik umfassen die Zusammenarbeit mehrerer Forscher, häufig an verschiedenen Institutionen, die jeweils einen Teil des Puzzles (dh Algorithmen, Bibliotheken usw.) bereitstellen. Um Arbeitscode freizugeben, müssen alle Forscher zustimmen. Dies ist selten eine einfache Diskussion und normalerweise ist es einfacher, das Problem zu vermeiden.

2) Oft ist der Code für ein einzelnes Papier in eine größere Codebasis eingebettet, die in einem Labor entwickelt wird. Diese Codebasis enthält andere unveröffentlichte Arbeiten. Das Trennen des Codes für ein einzelnes Projekt ist eine Menge Arbeit, oft ohne unmittelbaren Nutzen für die Personen, die diese Arbeit erledigen müssen (siehe Anreiz unten).

3) Universitäten haben häufig IP-Rechte an dem Code. Daher ist es notwendig, sich an ein "Innovationsbüro" zu wenden, das Ihnen das Leben unendlich schwer macht und möchte, dass Sie die "Erfindung" dokumentieren, damit sie patentiert werden kann, usw., bevor Sie sie als Open Source veröffentlichen. In einigen Fällen kann die Universität sogar die Erlaubnis zur Freigabe von Quellen verweigern (dies variiert zwischen den Institutionen und wird durch (1) sehr kompliziert).

4) Viele Computergrafik-Forschungen werden von Unternehmen durchgeführt. In diesem Fall besitzen die Autoren den Code auch nicht und müssen die Erlaubnis der Anwälte einholen, um den Code freizugeben. Anwälte haben wenig bis gar keinen Anreiz, Ja zu sagen.

5) Es besteht kein Anreiz, Code zu veröffentlichen. Der meiste Computergrafik-Forschungscode wird von niemand anderem verwendet. Selbst wenn dies der Fall ist, erhalten Sie für allgemeinen Code normalerweise nur eine Bestätigung (wertlos in Bezug auf Ihren Lebenslauf). Wenn Sie Glück haben, erhalten Sie ein Zitat. Einstellungskomitees und Grant-Agenturen kümmern sich im Allgemeinen nicht darum, ob Sie Ihren Code veröffentlicht haben. Die Zeit, die für die Vorbereitung des Codes für die Veröffentlichung aufgewendet wird, ist Zeitverschwendung, die für ein anderes Papier hätte aufgewendet werden können. (Es gibt Leute, die aktiv versuchen, dies in der Computergrafik zu ändern.).

6) Es gibt Anreize, nicht Code zu veröffentlichen. Code kann manchmal zu Startup-Unternehmen werden, an bestehende Unternehmen lizenziert werden usw. Dies finanziert zukünftige Forschung. Wir müssen alle essen.

6
Ryan Schmidt

Es hängt davon ab, ob. Eine Person, die eine Arbeit schreibt, oder ihr Vorgesetzter entscheidet, was mit dem Quellcode geschehen soll. Manchmal machen Leute das Projekt zu einer Open Source.

Manchmal werden Projekte normalerweise von Unternehmen finanziert, was bedeutet, dass sie Eigentum sind. In diesen Fällen darf der Autor des Papiers den Code nicht anzeigen.

5
BЈовић

Es ist normalerweise eine Frage der Seitenbeschränkungen. Wenn der Algorithmus außerordentlich kurz ist, wird er in der Arbeit häufig zumindest als Pseudocode dargestellt. Wenn die gedruckte Version des zugrunde liegenden Codes jedoch nur eine Handvoll Seiten lang ist, lässt das Drucken des Codes keinen Platz für das Fleisch des Artikels. Ein zehn Seiten langer Zeitschriftenartikel ist ein langer Artikel.

Wenn die Quelle nicht verfügbar ist, besteht Betrugspotenzial. Aufgrund dieses Potenzials verlangen viele Zeitschriften, dass Autoren ihren Quellcode als ergänzende Informationen einreichen (die bei Bedarf über die Zeitschrift erhältlich sind; möglicherweise fällt eine hohe Abonnementgebühr an). In einigen anderen Zeitschriften müssen die Autoren ihren Quellcode an alle weitergeben, die danach fragen. Wieder andere Zeitschriften befinden sich noch im dunklen Zeitalter; Der Quellcode ist für die Einreichung nicht erforderlich und die Autoren müssen ihn nicht veröffentlichen.

Am einfachsten ist es, die Autoren zu fragen, ob sie Ihnen den Quellcode zur Verfügung stellen können. Die E-Mail-Adressen der Autoren werden heutzutage normalerweise in den meisten Zeitschriftenartikeln aufgeführt.

3
David Hammen

Meine Erfahrung als Wissenschaftler (5 Artikel veröffentlicht) zeigt, dass das Journal häufig nicht verpflichtet ist, den Code zu veröffentlichen, mit dem die Ergebnisse erstellt wurden. Das heißt nicht, dass Zeitschriften die Skripte nicht akzeptieren würden. Viele Zeitschriften erlauben ergänzendes Online-Material. Bei einigen auf Algorithmen ausgerichteten Zeitschriften (z. B. Computer und Geowissenschaften) müssen Sie die Quelle eines Algorithmus hinzufügen. Dies ist jedoch eher eine Ausnahme als eine Regel.

Neben der Kultur in den Zeitschriften ist Code für Wissenschaftler nur ein Mittel zum Zweck. Viele sind keine professionellen Softwareentwickler. Da viele den Code nur als Ausdrucksmittel für die Wissenschaft betrachten, halten sie es nicht für dringend, den Code auch zu veröffentlichen. Darüber hinaus erfordert das Polieren Ihres Codes bis zu dem Punkt, an dem er veröffentlicht werden könnte, viel Arbeit. Ein Wissenschaftler wird dafür bezahlt, Wissenschaft zu betreiben, nicht Software zu schreiben.

3
Paul Hiemstra

Meistens ist das eigentliche Programm nur ein Werkzeug, um zum Ende zu gelangen, und nicht das Produkt für sich. Das Angeben vollständiger Details des Quellcodes entspricht dem Bereitstellen einer vollständigen Zeichnung des Stifts, der zum Signieren des Berichts und/oder der Schaltpläne des PCs verwendet wird.

Allerdings wird der Quellcode, insbesondere wenn Peer Reviewing eingeladen wird, verfügbar sein - obwohl im Rahmen einer Form der Geheimhaltungsvereinbarung (Non Disclosure Agreement, NDA) -, da das Programm von Natur aus geistiges Eigentum enthält.

Wenn Sie wirklich an dem Code interessiert sind, schlage ich vor @ Buttons 'Kommentar ist der beste Rat: Fragen Sie sie :)

2
Andrew

Die meisten Gründe, an die ich denken kann, wurden hier bereits angesprochen, aber ich dachte, ich würde zwei weitere hinzufügen, die mir tatsächlich passiert sind:

Das Tagebuch hat keine Ahnung, was zu tun ist.

Für eines der Papiere, an denen ich arbeitete, entschied ich, dass ich absolut ohne Frage den Quellcode (der springende Punkt des Papiers war die Datenvisualisierung) und die dazugehörigen Beispieldaten enthalten würde. Zusammen mit der Einreichung habe ich die elektronischen Ergänzungen 1 und 2 angehängt - ein R-Skript mit meinem Code und eine CSV-Datei mit den Daten, die für das R-Skript benötigt werden.

Wie sich herausstellt, kann das Journal nur elektronische Beilagen aufnehmen, wenn diese in Word-Dateien aufgenommen wurden. Nachdem ich fast einen Tag lang versucht hatte, das R-Skript in dieser Form zu erhalten, gab ich auf und beschloss, den Code nicht als Ergänzung aufzunehmen. Ich hätte es an meiner Universität hosten können, aber als Doktorand wusste ich, dass ich dort in ~ 1 Jahr mein Konto verlieren würde - Open Source nützt nichts, wenn es sofort von Linkrot überholt wird.

Am Ende habe ich es auf GitHub gehostet und einen Verweis darauf in die Zeitung aufgenommen, aber das lag daran, dass ich wirklich wollte, dass der Code hineingeht. Ich kann Sehen Sie, zumal die meisten Leute in meinem Bereich so etwas wie GitHub nicht verwenden und nur entscheiden, dass sich die Mühe nicht für die Handvoll Leute lohnt, die es herunterladen würden und die mir trotzdem eine E-Mail schicken könnten, wenn sie es wirklich wollen.

Das Tagebuch ist einfach nicht interessiert

Ich habe auf Anfrage eines Gutachters einige kleine Details über den Code selbst in ein Papier eingefügt, aber es ist ein klinisches Journal (sprich: niemand codiert), es erlaubt keine elektronischen Ergänzungen, und auch hier wäre das Hinzufügen des Quellcodes wahrscheinlich gewesen mehr Ärger als es wert war.

Ironischerweise ist (oder wird es bald sein) Open Source, wenn jemand nach dem Code gesucht hat , aber ich war bereits am Rande von ' Dies wird immer ablenkender. “Ich entschied, dass die kurze Erwähnung„ Den Rezensenten glücklich machen “alles war, was ich tun würde.

1
Fomite

Viel hängt von dem Zweck ab, für den der Code geschrieben wurde. Wenn es einen Punkt demonstrieren sollte, kann es gut sein, dass es nicht optimiert ist und daher nicht ideal, dass es veröffentlicht wird. Wenn die zugrunde liegenden Konzepte und Methoden gültig sind, sollte es möglich sein, das Ergebnis des Codes von Grund auf neu zu erstellen. Es kann auch Probleme mit dem Urheberrecht und dem Eigentum geben.

Grundsätzlich ist es technisch nicht unmöglich, den Code freizugeben, aber die Gründe, aus denen er möglicherweise nicht freigegeben wird, sind unterschiedlich. Aus diesem Grund gibt es wahrscheinlich keine einfache Antwort auf diese Frage. In bestimmten Fällen könnten Sie vielleicht die betroffenen Forscher fragen.

1
temptar

Das von Ihnen zitierte Papier umfasst bereits 28 Seiten, und der größte Teil des Inhalts befasst sich mit den Entwurfsentscheidungen, die sich auf die Lösung des Problems beziehen (siehe Titel).

Der Code ist der letzte Schritt zur Validierung des Designs. Es ist nicht trivial, aber es ist nicht der Teil, der einen Mehrwert für die Ergebnisse des Papiers darstellt, insbesondere wenn Sie den Platz berücksichtigen, den es einnehmen würde.

Nicht jeder Fall ist gleich. Einige Artikel enthalten Quellcode oder zumindest Pseudocode. Einige Editoren erlauben es nicht. Einige erlauben es, aber aus Platzgründen schließen die Autoren es nicht ein. Eine Zeitschrift, in der ich habe den Quellcode veröffentlicht als "Zahlen" formatiert wurde und die elektronische Version sie als Bilddaten enthält, obwohl ich sie als Text eingereicht habe.

1
Fuhrmanator

Anreize sind wichtig und die Anreize der Forscher bestehen im Allgemeinen darin, sicherzustellen, dass sie einen stetigen Strom von Papieren produzieren können, die schrittweise aufeinander aufbauen. Doktoranden benötigen in der Regel 3-5 veröffentlichte Arbeiten, die sie in einzelne Kapitel ihrer Arbeit umwandeln können, um ihren Abschluss zu machen. Die Junior-Fakultät muss vor ihrer Amtszeitüberprüfung so viele Veröffentlichungen wie möglich erstellen. Aus diesem Grund sind die meisten wissenschaftlichen Arbeiten wirklich Papier n in einer Reihe. Das Papier, auf das Sie verweisen, baut beispielsweise auf einem Papier auf, das dieselbe Gruppe ein Jahr zuvor veröffentlicht hat, und erörtert den Grund, den das nächste Papier wahrscheinlich behandeln wird.

Durch die Veröffentlichung des Quellcodes kann möglicherweise ein anderer Forscher in einer anderen Gruppe Papier produzieren. n+1 bevor der ursprüngliche Autor dies tut oder zumindest ein Papier erstellt, das einen erheblichen Teil des Grundes abdeckt, den der Autor als Teil dieses Forschungsstroms erwartet hatte. In diesem Fall könnte der Doktorand leicht feststellen, dass er weitere 6 bis 12 Monate in der Graduiertenschule verbringt, um genügend Forschungsergebnisse für den Abschluss zu produzieren. Das Fakultätsmitglied erhält möglicherweise ein veröffentlichtes Papier weniger, wenn die Zeit für die Überprüfung der Amtszeit abläuft. Beides sind offensichtlich große Schläge für die Karrieren des Forschers. Fügen Sie hinzu, dass akademische Anwendungen häufig Teil der Forschungsanstrengungen mehrerer Personen innerhalb einer Forschungsgruppe sind (entweder direkt oder weil sie bestimmte Komponenten gemeinsam nutzen), und dass innerhalb der Forschungsgruppe der Druck besteht, keinen Code zu veröffentlichen, der möglicherweise jemanden verletzt, der dies tut Sie arbeiten jeden Tag mit.

In Bereichen, in denen das Sammeln von Rohdaten zeitaufwändig und stark verteilt ist, kommt es häufig zu ähnlichen Diskussionen. In der Astronomie kann eine Forschungsgruppe beispielsweise Jahre damit verbringen, Daten zu sammeln, bevor sie über genügend Informationen verfügt, um ein Papier zu veröffentlichen. Aber sie werden diese Daten dann verwenden, um eine Reihe von Papieren zu erstellen. Forschungsgruppen zögern sehr, mehr ihrer Datensätze als unbedingt erforderlich zu teilen, da es für andere Gruppen zu einfach wird, die Zeit, die für das Sammeln der Daten aufgewendet wurde, frei zu nutzen, um die Vorteile einer tatsächlichen Analyse der Daten zu nutzen.

Irgendwann wird ein Großteil dieses Codes veröffentlicht, genau wie die astronomischen Daten irgendwann veröffentlicht werden. Dies geschieht häufig, wenn der Autor das Ende dieser Reihe von Artikeln erreicht oder wenn die meisten Forschungsgruppen, die an ähnlichen Themen arbeiten, ähnliche Engines haben, sodass die Veröffentlichung des Codes einem neuen Forscher keinen Wettbewerbsvorteil mehr verschafft.

Es wäre ideal für die Wissenschaft, wenn die Daten und der Code schneller veröffentlicht würden. Aber das würde dem wissenschaftlichen Forscher oft schaden, und genau darum geht es in diesem Fall.

1
Justin Cave

Als jemand, der dies getan hat (auf der Schülerseite) in der Vergangenheit mehrmals: Oft sehen die Professoren, die die Arbeit schreiben, nicht einmal den Quellcode selbst. Sie lassen ihre Studenten den Code schreiben und fragen dann erst nach der endgültigen ausführbaren Datei (oder sogar nur nach einer Bestätigung des Ergebnisses), wenn sie vollständig ist.

Außerdem ist der geschriebene Code oft sowieso nicht sehr lesbar, weil die Schüler ihn einfach zusammen gehackt haben, um ihn zu erledigen, und weil (obwohl sie sehr hell sind) Absolventen ohne reale Erfahrung dazu neigen nicht die besten Programmierer der Welt zu sein ...

Oft wirkt sich die Implementierung (d. H. Die Software spielt keine Rolle) aus, aber zunehmend beeinflusst die Implementierung die Ergebnisse.

Immer wenn die Implementierung wichtig ist ... sollte der Quellcode auf jeden Fall verfügbar sein! Je mehr die Ergebnisse von der Implementierung oder den Berechnungsmethoden abhängen, desto wichtiger wird es, den Quellcode zu veröffentlichen.

0

Ich möchte ein paar Punkte zu der Art von Code hinzufügen, mit dem ich mich als Chemometriker beschäftige (Chemiker, der Datenanalyse durchführt):

  • Personen, die Datenanalysecode schreiben (wie ich), sind vergleichsweise wenige im Vergleich zu Personen, die diesen Code verwenden . "Benutzerdefinierter Code im eigenen Haus" bedeutet nicht, dass die Autoren ihn geschrieben haben - könnte der Code von Kollegen sein, sodass die Autoren ihn nicht veröffentlichen können.

  • Eine separate Veröffentlichung des Codes kann geplant werden, und der Autor des Codes (oder der Vorgesetzte) kann besorgt sein, dass die Neuheit verloren geht, wenn der Code zuvor (teilweise) veröffentlicht wurde.
    Auch wenn die Zeitschrift, für die die Codeveröffentlichung bestimmt ist, nichts dagegen hat, dass der Code zuvor öffentlich verfügbar war, ist das reine Anliegen von Der Supervisor (oder jemand im IP-Büro) kann ausreichen, um die Veröffentlichung des Codes zu stoppen.

  • Datenanalysecode wird häufig auf die Daten zugeschnitten. Ohne die Daten macht es nicht allzu viel Sinn. (Sie können argumentieren, dass die Daten sowieso veröffentlicht werden sollten, aber das ist eine andere Frage und ein anderes Thema hier.)
    In jedem Fall archivieren wir an meinem Institut Rohdaten und Datenanalysecode zusammen mit dem Papier. Die Standardrichtlinie sieht (noch?) Nicht vor, sie öffentlich verfügbar zu machen, aber sie wären sicherlich auf Anfrage verfügbar.

  • (Die traditionelle Ansicht darüber, was Reproduzierbarkeit in der Chemie ist, entspricht eher einer Beschreibung (möglicherweise Pseudocode) des Algorithmus als dem Versand des tatsächlichen Quellcodes.)

  • Viele meiner Kollegen verwenden interaktive Tools für ihre Datenanalyse, die die Schritte der Datenanalyse nicht protokollieren. Es gibt also keinen Quellcode , der veröffentlicht werden könnte. Die Datenanalyse entspricht weniger einer Programmierung als einem Laboransatz: Sie tun Dinge und schreiben auf, was Sie tun und in Ihrem Laborbuch beobachten.