Frage:
Beliebtes proprietäres Programm oder obskurer Open-Source-Ersatz für reproduzierbare Forschung?
user107
2012-07-10 16:27:07 UTC
view on stackexchange narkive permalink

Ich habe lange Zeit Open-Source-Software für meine Arbeit verwendet, um die "reproduzierbare Forschung" zu fördern. Ich glaubte, wenn ich meine Codes Open Source machen würde und die Software, in der diese Codes ausgeführt werden, auch Open Source wäre (oder zumindest kostenlos), wäre meine Forschung äußerst reproduzierbar. In einer kürzlich durchgeführten Diskussion wurde jedoch festgestellt, dass Forschung reproduzierbarer ist, wenn man "beliebte" Software anstelle von "unbeliebten" kostenlosen verwendet.

Zum Beispiel:

hatte ich Ich habe Scilab (Free) für einen Großteil meiner Arbeit verwendet und meine Dateien an andere verteilt. Aber ich war überrascht, dass mehr Leute MATLAB ($$) hatten und es vorzogen, wenn ich ihnen stattdessen MATLAB-Dateien schickte (kleine Änderungen).

Meine Frage lautet:

Angenommen, ich starte ein neues Projekt und möchte es so reproduzierbar wie möglich machen. Sollte ich relativ unpopuläre freie Software oder äußerst beliebte proprietäre Software verwenden?

Normalerweise beschäftige ich mich nicht mit Daten, daher ist das vielleicht eine naive Frage, aber es ist nicht möglich, alles in einem offenen Format zu halten (z. B. eine große Wertetabelle in einer Textdatei) und dann in die gewünschte zu importieren Software?
@CharlesMorisset. In meinem Bereich hat der Austausch mehr mit _codes_ als mit _data_ zu tun. Zum Beispiel Codes zur Lösung eines mathematischen Problems. Es gibt nur sehr wenige Eingaben.
In dem von Ihnen beschriebenen speziellen Fall empfehle ich dringend, [Octave] (https://www.gnu.org/software/octave/) anstelle von Scilab zu verwenden. Es ist eine weitere kostenlose Matlab-Alternative, die sich jedoch im Gegensatz zu Scilab stark und explizit auf die Matlab-Kompatibilität konzentriert. Das letzte Mal, als ich ein Matlab-Skript von einem Mitarbeiter erhielt, lief es unter Octave ohne Änderungen perfekt.
Sieben antworten:
#1
+55
David Ketcheson
2012-07-10 18:31:45 UTC
view on stackexchange narkive permalink

Ich denke, es gibt zwei Arten der Reproduzierbarkeit:

  1. Die Fähigkeit einer anderen Person, Ihren Code auszuführen und dieselbe Ausgabe zu erhalten.
  2. Die Fähigkeit einer anderen Person, dies zu tun Schreiben Sie einen eigenen Code, der auf der Grundlage Ihrer Beschreibung und der Prüfung Ihres Codes (Reproduktion von Grund auf) dasselbe tut wie Ihr Code.
  3. ol>

    Die zweite Art der Reproduzierbarkeit ist viel überzeugender, da der Hauptpunkt der wissenschaftlichen Reproduzierbarkeit ist die Überprüfung der Richtigkeit des Ergebnisses. In der Wissenschaft, die sich auf Code stützt, ist es normalerweise unmöglich, jedes Detail des Codes in das Papier aufzunehmen. Daher erfordert die Überprüfung eine Überprüfung des Codes.

    Wenn Sie verwenden Bei proprietärer Software verwendet Ihr Code wahrscheinlich geschlossenen Quellcode und kann daher nicht von Grund auf überprüft oder reproduziert werden. Wenn Sie Open Source-Software verwenden, ist der gesamte Code, den Ihr Code aufruft, wahrscheinlich Open Source Alles kann von jemand anderem von Grund auf überprüft oder reproduziert werden.

    Derzeit ist es wahrscheinlich richtig, dass die erste Art der Reproduzierbarkeit mit proprietärer, weit verbreiteter Software besser erreichbar ist. Ich bin optimistisch, dass der aktuelle Trend dazu führen wird, dass Open-Source-Software in Bezug auf die breite Nutzung aufholt (z. B. SAGE).


    Nachtrag im Licht von Epigrads Antwort unten, der ich hauptsächlich zustimme: Das Problem beim Verlassen auf Closed-Source-Code ist nicht, dass jemand anderes nicht weiß, was dieser Closed-Source-Code tun soll

    Das Problem ist, dass wenn Sie zwei Closed-Source-Implementierungen von demselben Algorithmus haben und diese unterschiedliche Ergebnisse liefern (vertrauen Sie mir , werden sie normalerweise), dann haben Sie keine Möglichkeit festzustellen, welche (falls vorhanden) richtig ist .

    Mit anderen Worten, Closed-Source-Code wäre für die Reproduzierbarkeit in Ordnung, wenn dies der Fall wäre waren fehlerfrei. Aber es ist nicht.

Ich denke, diese Antwort sollte darauf hinweisen, dass sie auf Fälle beschränkt ist, in denen die "Ausgabe" der Software "das Ergebnis" ist oder anzeigt, anstatt einen Teil des Versuchsaufbaus für die eigentliche Bewertung zu bilden.
#2
+18
Fomite
2012-07-11 02:39:22 UTC
view on stackexchange narkive permalink

Um die Antwort von @David Ketcheson mit einem "Ja, aber ..." zu ergänzen,

stimme ich zu, dass es zwei Arten der Reproduzierbarkeit gibt - CrossValidated diskutiert sie mit einer gewissen Häufigkeit. Wie bereits erwähnt, gibt es die Reproduzierbarkeit "Kann ich auf" Ausführen "klicken und die gleiche Antwort erhalten, die Sie erhalten haben", die ich im Allgemeinen nicht sehr überzeugend finde.

Es gibt auch "Könnte ich Ihre Analyse wiederholen?" von dem, was Sie von Schritt 1 bis Schritt Ende angegeben haben, und die gleiche oder eine ähnliche Antwort erhalten? " Ich denke, dies ist das, was wir anstreben sollten.

Dies wird oft durch die Verwendung von zugänglichem, nicht proprietärem Code unterstützt, aber nicht immer. Betrachten Sie das folgende Beispiel eines Modells für die Dynamik von Infektionskrankheiten, das als ODE-System ausgedrückt wird:

Um meine Ergebnisse zu replizieren (oder nicht zu replizieren), spielt die von mir verwendete Software keine Rolle. Was zählt, sind die von mir gewählten Gleichungen und Parameterwerte. Wenn ich diese zur Verfügung stelle, ist der einzige Grund, warum Code benötigt wird, der, dass jemand die Studie nicht von Grund auf neu implementieren möchte und nur den Code ausführen und prüfen möchte, ob die Ergebnisse übereinstimmen, basteln mit den Annahmen ein bisschen usw. In diesem Fall profitiert jeder davon, dass der Code in einer Form vorliegt, die von Menschen verwendet wird.

Ich denke, dass dies häufig auch für statistische Analysen gilt, bei denen keine neuartigen Methoden verwendet werden. An dieser Stelle ist es wichtig, dass die Daten verfügbar sind und dass der Code in einer Sprache implementiert ist, die die Menschen verstehen und verwenden. Wenn 95% der Benutzer SAS verwenden, auch wenn es proprietär ist, besteht die Möglichkeit, Ihre Ergebnisse am besten zugänglich und am einfachsten zu replizieren, in einer Implementierung in SAS. Denn wenn Sie eine obskure, aber freie Sprache wählen, haben Sie die Barriere "Geld" durch eine Barriere "Zeit zum Verstehen" ersetzt - was für die meisten Menschen gleichbedeutend ist.

Die Zusammenfassung lautet wie folgt: Ich denke nicht, dass "Free / Open" vs. "Proprietary / Closed" notwendigerweise die entscheidende Unterscheidung ist. Ich denke, dass Unterscheidung Zugänglichkeit ist und versucht, dies zu maximieren. Wenn es ein offenes, kostenloses und beliebtes Softwarepaket gibt, das verwendet wird (z. B. R), dann großartig! - verwende das. Wenn das Feld jedoch hauptsächlich ein kommerzielles Paket verwendet und eine obskure Alternative auswählt, nur weil die kostenlose die Barrierefreiheit nicht behebt, verschiebt es nur die Belastung.

Unabhängig davon, ob Code geöffnet oder geschlossen ist, muss ein Algorithmus, der für ein Papier von entscheidender Bedeutung ist, klar genug angegeben werden, um ihn zu replizieren. Diese Bemühungen können erheblich unterstützt werden, indem für mindestens einige der Schritte zusätzliche "Testfall" -Daten vorliegen. Dies kann es einem unabhängigen Implementierer ermöglichen, sein Vertrauen zu stärken, dass er verstanden hat, was vor sich geht, und es kann auch bei der manchmal schwierigen Aufgabe helfen, zu erklären, was ein Schritt tatsächlich tut. Ich würde zustimmen, dass dies wahrscheinlich nicht in den Hauptteil des Papiers gehört, aber genau dafür ist ein SI gedacht.
Als jemand, der daran arbeitet, ODE-Löser effizient und zuverlässig zu machen, finde ich es toll, dass Sie sie als Beispiel für etwas verwenden, das niemals scheitern wird. Natürlich gibt es immer noch viele Situationen, in denen sie fehlschlagen.
#3
+12
Faheem Mitha
2013-01-25 16:53:46 UTC
view on stackexchange narkive permalink

Lassen Sie mich mit einem Haftungsausschluss beginnen. Ich stimme im Allgemeinen der Community-Perspektive für freie Software zu, dass proprietäre Software ethisch fragwürdig ist und am besten vermieden wird, wenn dies möglich ist. Mir ist klar, dass diese Perspektive in wissenschaftlichen Kreisen nicht häufig vertreten wird. Trotzdem ist proprietäre Software manchmal ein notwendiges oder zumindest nicht leicht zu vermeidendes Übel, und ich bin im Allgemeinen pragmatisch, proprietäre Software zu verwenden, wenn es keine guten Alternativen gibt. Ich habe in der Vergangenheit proprietäre Software verwendet, obwohl die einzige proprietäre Software, die ich derzeit (sporadisch) verwende, Skype ist, für die es keine guten kostenlosen Alternativen gibt.

In einem wissenschaftlichen Bereich gelten jedoch besondere Überlegungen Kontext. Eines davon wurde bereits von @David behandelt, nämlich, dass Sie im Allgemeinen keine proprietäre Software "hineinschauen" können, um zu sehen, wie etwas implementiert wird. Allerdings wird manchmal proprietäre Software in einer interpretierten Sprache geschrieben, wie in Splus, und man kann möglicherweise einen Teil oder die gesamte Algorithmusimplementierung sehen. Unabhängig davon gilt der Punkt im Allgemeinen.

Ein separates und offensichtliches Problem, das meines Erachtens niemand angesprochen hat, ist, dass die Verwendung proprietärer Software andere, die Ihre Software verwenden möchten, dazu zwingt, das von Ihnen verwendete proprietäre Produkt zu kaufen . Diese Produkte können sehr teuer sein, insbesondere für Menschen aus armen Ländern. Zum Beispiel kostet Matlab, das in diesem Thread erwähnt wurde, Tausende von Dollar, wenn man eine Lizenz selbst bezahlen muss. Westliche akademische Einrichtungen verfügen häufig über Standortlizenzen für solche beliebte Software, sodass Forscher diese nicht selbst bezahlen müssen. Ich persönlich bin ziemlich unglücklich, wenn von mir erwartet wird, dass ich eine Software verwende, die in einer proprietären Sprache oder einem proprietären Paket geschrieben wurde, das gekauft werden muss.

Ein verwandtes Problem ist, dass viel, wenn nicht die meiste Forschung, mit öffentlichen Mitteln, d. h. Steuergeldern, durchgeführt wird. Es erscheint mir unerwünscht, solche Mittel für den Kauf von proprietärer Software zu verwenden, was den Gewinn eines Unternehmens erhöht. Im Allgemeinen gibt es eine gewisse Bewegung, um akademische Arbeit, die mit öffentlichen Mitteln durchgeführt wird, kostenlos zu gestalten. Und man kann leicht argumentieren, dass die Verwendung von proprietärer Software das wissenschaftliche Produkt weniger frei macht. Ich glaube zum Beispiel, dass das NIH jetzt einige solche Richtlinien hat. Ähnliche Argumente könnten für die Verwendung von Softwaretools verwendet werden.

Ein tangentiales technisches Problem besteht darin, dass es oft schwierig ist, proprietäre Software auf freien Softwareplattformen wie den derzeit beliebten kostenlosen Unix-ähnlichen Systemen zum Spielen zu bringen in wissenschaftlichen Kreisen, z die Linux-basierten Systeme und die BSD-Systeme. Diese Schwierigkeiten umfassen, ohne darauf beschränkt zu sein,

a) ABI-Probleme. Wenn Sie beispielsweise eine C / C ++ - Erweiterung für Matlab kompilieren möchten, müssen Sie genau die Version des Compilers verwenden, mit der das Matlab-Programm kompiliert wurde.

b) Das Programm benötigt veraltete Bibliotheken oder erfordert Bibliotheken sollten sich an nicht standardmäßigen Orten befinden.

Ich erwähne dieses Problem teilweise, weil ich die Frage so verstehe, dass es sich im Kontext einer pragmatischen Verwendung um proprietäre oder freie Fragen handelt.

Um die Frage direkt zu beantworten:

Angenommen, ich starte ein neues Projekt und möchte es so reproduzierbar wie möglich machen. Sollte ich relativ unpopuläre freie Software oder äußerst beliebte proprietäre Software verwenden?

Ich glaube nicht, dass es eine klare Antwort gibt. Wenn es keine praktikable Alternative gibt, müsste man die proprietäre Software verwenden, wie ich es mit Skype tue. Wenn es eine brauchbare kostenlose Version gäbe, würde ich sie verwenden. Denken Sie daran, dass wenn mehr Menschen anfangen, die "relativ unpopuläre freie Software" zu verwenden, sie populärer wird. :-)

#4
+8
cbeleites unhappy with SX
2012-07-11 02:35:35 UTC
view on stackexchange narkive permalink

In Übereinstimmung mit den meisten Aussagen von EnergyNumbers und David Ketcheson möchte ich einige geringfügig andere Punkte hinzufügen:

  • die Tatsache, dass Code in einer bestimmten Sprache geschrieben ist (Matlab) macht es nicht per se zu Closed Source.
    Genau wie die Verwendung von Scilab unter Closed Source Windows (oder die Verwendung von Closed Source BLAS) Scilab nicht zu Closed Source macht.
    Es gibt Zeitschriften, die reproduzierbare Recherchen erfordern und Öffnen Sie den Code und akzeptieren Sie den Matlab-Code.

  • Ebenso schließen sich populär und kostenlos weder aus, noch bedeutet proprietär, dass er beliebt ist.

  • Keiner der beiden impliziert, dass die jeweilige Software für die reproduzierbare Datenanalyse geeignet ist.

  • Die Auswahl der Sprache sollte auf mehreren Faktoren beruhen.

    • Wie geeignet ist sie für das jeweilige Problem?
    • auch hier: wie geeignet ist es für die Analyse reproduzierbarer Daten (ich bin experimenteller Wissenschaftler, daher ist die Reproduktion einer Datenanalyse für mich nur ein Teil der reproduzierbaren Forschung)
    • , insbesondere wenn es um das Teilen von Code geht: Überlegungen zur Infrastruktur (Kann Code in Bibliotheken verpackt werden? Wie können Daten und Code sowie der Text in einem reproduzierbaren Papier gebündelt werden?)
    • Popularität = Größe der Peer Group mit dieser Software (die irgendwie die Kosten einer Lizenz beinhaltet)
    • Vielleicht möchten Sie auch überlegen, was die Peer Group, die an reproduzierbarer Forschung interessiert ist, verwendet (In meinen Bereichen stimmt die Menge der reproduzierbaren Forschung viel mehr mit der Open Source (R) -Masse überein, während Von der Peer Group, die an der gleichen Art von Problem arbeitet, verwendet wahrscheinlich die Mehrheit Matlab)

Mein alter Vorgesetzter pflegte zu sagen, dass die Kosten für eine Lizenz n betragen o wissenschaftliches Argument.
Aber natürlich müssen Sie es möglicherweise berücksichtigen.

  • Ebenso ist Popularität kein wissenschaftliches Argument, aber Sie sollten kritisch prüfen, ob die Propularität tatsächlich auf diese Lose hinweist Es gibt viele gute Gründe, diese Software zu verwenden.
  • Beispiele:

    • In meinem Bereich wird R immer beliebter (mittlerweile so populär, dass es in R veröffentlicht werden kann) und ersetzt in gewissem Maße Matlab.

    • R ist also sowohl kostenlos als auch beliebt (dennoch nutzen die meisten Leute aus meinem Bereich nicht die Tatsache, dass Sie in die Quelle von R schauen können, wenn sie über reproduzierbare Datenanalysen sprechen)
    • Gründe IMHO sind

      • am wichtigsten: R ist gut für unsere Art von Problemen geeignet (ich denke, es ist besser geeignet als Matlab, andere unterscheiden sich geringfügig in ihrer Meinung und verwenden Matlab. Selbst andere glauben, dass es tatsächlich besser geeignet ist, aber nicht so viel, um das Lernen von R im Moment zu überwiegen.
      • Gut geeignet zu sein, beinhaltet die Verfügbarkeit von Methoden, die wir bei CRAN verwenden im Vergleich zu kommerziellen Matlab-Toolboxen und Matlab-Datei-Repository
      • Besser geeignet ist die Tatsache, dass ich den Code proprietärer Matlab-Toolboxen (p-Dateien) nicht an bestimmte Anforderungen anpassen kann.
      • Gut geeignet sein Beinhaltet die einfache Infrastruktur zur Berichterstellung
      • : z Das Paketkonzept von R erzwingt einen minimalen Standard und ermöglicht es, sich darauf zu verlassen, dass Beispiele und Tests tatsächlich ausgeführt werden können, verglichen mit einem Ordner voller .m-Dateien (ich habe gehört, dass kürzlich ein paketähnlicheres Konzept eingeführt wurde). Dies hilft sehr beim Teilen des Codes (ob Sie Ihre Ergebnisse reproduzieren oder für eigene Daten verwenden möchten).
      • Lizenzkosten fallen indirekt an: Sie müssen sich bei der Installation keine Sorgen machen Sie können den Schülern auch sagen, dass sie es auf ihren Laptops installieren sollen, ohne sich Gedanken über die Kosten einiger Lizenzen für Computer bei der Arbeit zu machen.
      • wahrscheinlich teurer als die Lizenzgebühren selbst sind die Zeit, um den Lizenzmanager zum Laufen zu bringen oder Lizenzen zwischen Computern zu übertragen, und wenn Sie nur eine Toolbox ausprobieren möchten, bevor Sie entscheiden, ob Sie sie kaufen oder nicht , der Aufwand, a) den Anbieter nach einer Demoversion zu fragen und später b) Bestellformulare auszufüllen und Begründungen zu schreiben, warum Sie Geld für diese Lizenz ausgeben müssen.

    Beachten Sie, wie viele dieser Argumente "weich" sind und tatsächlich mehr damit zu tun haben, an das eine oder andere System gewöhnt zu sein oder eine Funktion zu verwenden, die in der Peer Group einfacher, offensichtlicher oder häufiger ist Von den Benutzern dieser Software: noweb kann mit Matlab arbeiten, die Dokumentation von M-Dateien ist möglich und wird empfohlen (obwohl nicht wirklich erzwungen), Unit-Tests sind in Matlab möglich, Matlab Central verfügt über viel kostenlosen Code usw. Nur R-Benutzer kennen CRAN immer, während nicht alle Matlab-Benutzer Matlab Central kennen. Es gibt eine gute Kultur, wissenschaftliche Artikel über die implementierte Methode in R-Hilfedateien zu zitieren, Code zusammen mit Beispieldatensätzen zu versenden und / oder tatsächlich laufende Beispiele anzugeben Code.

    Beispiele für ungültige Argumente:

    • Wenn meine Kollegen keine Versionskontrolle für die Codierung verwenden würden, würde ich dies nicht als Argument gegen betrachten Verwenden der Versionskontrolle (da es viele gute Gründe für die Verwendung gibt)

    • Oder wenn diejenigen, die sich weigern, die Versionskontrolle zu verwenden, Profi waren Grammatik in Matlab wäre auch kein Argument gegen Matlab - aber ich würde prüfen, ob es einen Grund gibt, der die Verwendung der Versionskontrolle für Matlab-Code verbietet.

    #5
    +4
    410 gone
    2012-07-10 20:19:59 UTC
    view on stackexchange narkive permalink

    Hören Sie Ihren Kollegen &-Kollegen zu.

    Sie haben Ihnen bereits gesagt, was für sie am besten geeignet ist, damit sie Ihre Ergebnisse reproduzieren können.

    Das Die Antwort lautet in Ihrem speziellen Fall Matlab.

    Es wird einige andere geben, die es auf Octave, SciLab, Excel, Fortran oder was auch immer portieren möchten. Das ist auch in Ordnung - aber wenn Sie flexibel sind, auf welcher Plattform Sie codieren, und das Codieren in Matlab Sie nicht weniger produktiv macht (oder die geringe Verringerung der Produktivität einen Preis wert ist, der für die erhöhte Reproduzierbarkeit zu zahlen ist), dann codieren Sie in Matlab . Weil Ihre Kollegen Ihnen bereits gesagt haben, dass sie so Ihre Arbeit am einfachsten reproduzieren können.

    Es gibt viele gute (und vielleicht auch einige schlechte) Gründe, warum viele Ihrer Kollegen Matlab bevorzugen. Manchmal kosten Sie die billigsten Dinge am meisten.

    Für alle anderen, die dies lesen, mit einem ähnlichen Problem, ist der Kern der Antwort dieselbe: Hören Sie Ihren Kollegen zu.

    Wenn Sie jedoch Octave verwenden, sollte es in Matlab reproduzierbar sein. (Das Gegenteil ist nicht immer der Fall. Matlab verfügt über viele Funktionen, die von Octave nicht unterstützt werden.)
    Eine @Abe-Kompatibilität in die andere Richtung ist ebenfalls nicht gewährleistet. Matlab und Octave haben einen gemeinsamen Funktionsumfang, unterscheiden sich jedoch stark, wenn Sie die Oberfläche zerkratzen. Sie können Programme schreiben, die auf beiden ausgeführt werden, aber Sie müssten die meisten erweiterten Funktionen vermeiden.
    #6
    +4
    Rody Oldenhuis
    2012-07-11 19:02:43 UTC
    view on stackexchange narkive permalink

    Meine zwei Cent:

    Ich vergleiche Code oft mit einer wissenschaftlichen Arbeit. Der Zweck eines Papiers besteht darin, Ihre Ergebnisse und Ihre Herangehensweise an das Problem so zu beschreiben, dass Ihre Kollegen Ihre Ergebnisse validieren / widerlegen können, wie sie es für richtig halten , so dass eine gemeinsame Anstrengung erforderlich ist Ort, um Fortschritte auf dem Gebiet zu machen.

    Wen interessiert es, ob der Autor des Papiers LaTeX zum Schreiben seines Papiers oder MS Word verwendet hat? Wen interessiert es, ob die Daten mit MATLAB, Excel oder Pascal verarbeitet wurden? Es sind die Wahrheiten in der Zeitung, die zählen, nicht die Werkzeuge, die verwendet werden, um dorthin zu gelangen (obwohl viele gerne hier hineinspringen und eine heftige Diskussion über diesen Punkt beginnen würden ... aber Nach meiner Erfahrung ähneln die in solchen Diskussionen verwendeten Argumente eher der Religion als irgendetwas anderem.

    Was sehr wichtig ist, ist jedoch das Mittel, um zu Gleichaltrigen durchzukommen . Wenn Sie beispielsweise ein Papier in Esperanto schreiben und veröffentlichen (vorausgesetzt, es wird momentan akzeptiert), einfach weil Sie es für schön und elegant halten und jeder es sprechen sollte. Außerdem gibt es viele Bücher darüber, wie man auf Esperanto Bedeutung vermittelt, oder?

    Nicht viele Ihrer Kollegen werden das Papier verstehen können, geschweige denn die Botschaft erhalten und Ihre Ergebnisse reproduzieren können. Sie müssen warten, bis jemand auf Ihrem Gebiet vorbeikommt, der Ihre Ansichten zu Esperanto teilt. Dies kann ein halbes Leben dauern. Insgesamt ist dies ein sehr schlechter Weg, um Fortschritte in Ihrem Bereich zu erzielen.

    Dies ist meiner Meinung nach der Kern Ihrer Situation. Wenn Ihre Kollegen hauptsächlich MATLAB verwenden, sollten Sie sich am besten an MATLAB halten, da Sie die meisten Kollegen am schnellsten erreichen. Überlassen Sie es (anderen) Ingenieuren, herauszufinden, ob MATLAB tatsächlich gute (genug) Ergebnisse für Ihren Fall liefert, und überlassen Sie es einem Kollegen in einer halben Welt, Ihren Code in C ++ zu übersetzen und Ihre Ergebnisse zu überprüfen.

    Es ist nicht der Code, der zählt - es ist das Wissen, das darin enthalten ist.

    #7
    +1
    David
    2016-10-01 08:17:32 UTC
    view on stackexchange narkive permalink

    Sie können alles tun, was Sie wollen, aber es gibt einige Überlegungen:

    1) Möglicherweise sind Sie verpflichtet, Ihre Arbeit zu verbreiten. Wenn Sie von einer externen Finanzierungsagentur wie dem NSF oder dem NIH unterstützt werden, ist die Verbreitung eine Verpflichtung. Viele private Stiftungen und andere Finanzierungsquellen bieten auch Unterstützung mit der Absicht der Verbreitung, unabhängig davon, ob dies ausdrücklich angegeben ist oder nicht.

    Wenn Sie eine solche Verpflichtung haben, würde dies ohne weitere Überlegungen bedeuten, dass Sie die am besten zugängliche verwenden Software möglich, unabhängig davon, ob diese proprietär oder kostenlos ist.

    2) Open Source ist für einige Arten von Forschung wichtig, für die meisten Forschungen jedoch irrelevant. Sofern Sie nicht an Computersystemen forschen, bei denen es wirklich darauf ankommt, wie der Computer zu einer Antwort kommt, ist die Methode weniger wichtig als die Korrektheit. Manchmal kann es wichtig sein (z. B. wenn Ihre Arbeit stark von numerischen Methoden abhängt), aber wahrscheinlich nicht.

    3) Communities legen Standards für Gültigkeit und Integrität fest. Wenn alle anderen MATLAB verwenden, hat die Community dies für richtig befunden. Wenn keine gegenteiligen Beweise vorliegen, lässt die Verwendung von Open-Source-Software Ihre Ergebnisse in den Augen von niemandem korrekter oder überprüfbarer erscheinen.

    Als Randnotiz hat Mathworks einen guten Ruf für die Zusammenarbeit mit Forschern. Wenn Sie wirklich das Gefühl hätten, dass MATLAB Ihnen falsche Ergebnisse liefert, und Sie Beispiele hätten, um dies zu zeigen, würden sie Ihre Tür einschlagen, um das Problem zu beheben. Mathworks hat mir am selben Tag, an dem ich wegen einer obskuren Hardware-Inkompatibilität angerufen habe, die zu falschem Verhalten geführt hat, einen benutzerdefinierten Support-Patch ausgestellt.



    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...