Wie gehe ich als wissenschaftlicher Mitarbeiter vor, meinen Code zu schützen? Muss ich mir erstmal Sorgen machen?

Ich bin ein Student, der als wissenschaftlicher Mitarbeiter für eine Universität arbeitet, hauptsächlich zusammen mit einem Betreuer. Obwohl ich mein eigenes Projekt habe, muss ich meinen Vorgesetzten in meiner Arbeit bei seiner Hauptforschung unterstützen.

Kürzlich hat mir mein Vorgesetzter ein kleines Codierungsprojekt zugewiesen, das die Datenanalyse für Experimente beschleunigen und uns beiden zugute kommen würde. Ich würde gerne Code schreiben, der seine und meine Arbeit vereinfacht, ebenso wie mein Job als sein Assistent. Ich bin jedoch besorgt, dass der Code, den ich geschrieben habe, in der gesamten Forschungsgruppe verbreitet und verwendet wird. Dieses Gefühl ist darauf zurückzuführen, dass dieses Codierungsprojekt während eines Gruppengesprächs entstand, zu dem ich, mein Vorgesetzter und ein anderer Forscher gehörten, der darauf hinwies, dass ein solches Programm ihm und anderen in der Abteilung Zeit und Energie sparen würde.

Meine zwei Fragen

Habe ich das berechtigte Gefühl, von dem anderen Forscher ausgenutzt zu werden, um diesen Code zu schreiben, oder bin ich egoistisch?

Kann ich meinen Code vor der Verwendung durch andere schützen, ohne Spannungen/Feinde zu erzeugen?

Ich glaube, dass meine Energie und Zeit in erster Linie für die Arbeit meines Vorgesetzten und für meine eigene reserviert sind. Dies ist Code, der relativ einfach zu schreiben ist, aber ziemlich zeitintensiv ist. Ich sehe, wenn der andere Forscher diese Abkürzung in der Datenanalyse haben möchte, könnte er sie selbst schreiben. Es würde mich nicht so sehr stören, wenn das Projekt direkt von meinem Vorgesetzten kommt, sondern explizit für uns. Wenn es später geteilt würde, wäre ich nicht so zwiegespalten. Vielmehr ist der Forscher, der das Projekt vorangetrieben hat, weit entfernt von meiner Arbeit.

Wie würde ich andernfalls sicherstellen, dass ich Anerkennung dafür erhalte, falls sich dieser Code auf andere Forscher ausbreitet? Ich betreibe eine Weiterbildung mit dieser Abteilung und möchte meinen Ruf als bedeutendes Mitglied der Forschungsgruppe für die Zulassung verbessern. Vielleicht bin ich zu kleinlich oder egoistisch in Bezug auf die Auswirkungen dieses Kodex. Dies ist das erste Mal, dass ich Code für etwas geschrieben habe, das über den Unterricht hinausgeht, und ich möchte die Situation richtig angehen.

Bearbeiten

Danke an alle, die mir gezeigt haben, dass ich wirklich, wirklich idiotisch war. Die meisten dieser Kommentare sind sinnvoll oder haben mir den Kopf versohlt, den ich brauchte. In der Lage zu sein, andere Industrien zu verbessern, ist ein großer Punkt meines Interesses an diesem Bereich, also machte es klar, dass ich ein Heuchler war, als ich es von außen sah. Mir ist klar, dass ich meine Denkweise ändern muss, wenn ich in Zukunft Forschung betreiben möchte. In der Zwischenzeit werde ich den Code so weit wie möglich diversifizieren, um so vielen wie möglich zu helfen. Danke allen für den Input.

Könnten Sie es so codieren, dass es nur mit Ihren Daten und Ihren Vorgesetzten funktioniert? Vor allem, wenn Sie es in einer kompilierten Version bereitstellen ...
"Ich bin besorgt, dass der Code, den ich geschrieben habe, in der gesamten Forschungsgruppe verbreitet und verwendet wird" - was wäre die Kehrseite davon?
AcademiaSE ( academia.stackexchange.com ) wäre für diese Frage besser geeignet gewesen.
Zu deinem edit: mach dich nicht fertig! Obwohl Ihre anfängliche Denkweise nicht zielführend war, war es besser, dass Sie fragten, als den eingeschlagenen Weg fortzusetzen.

Antworten (6)

Habe ich das berechtigte Gefühl, von dem anderen Forscher ausgenutzt zu werden, um diesen Code zu schreiben, oder bin ich egoistisch?

Nein, Sie werden nicht "ausgenutzt" - wenn ich Sie richtig verstehe, würde dieser Kodex auch Ihnen und Ihrem Vorgesetzten zugute kommen. Dass es auch anderen zugute kommt, ist eine gute Sache .

Kann ich meinen Code vor der Verwendung durch andere schützen, ohne Spannungen/Feinde zu erzeugen?

Sie können es möglicherweise schützen, obwohl dies unwahrscheinlich ist, da Sie für die Universität arbeiten und diese die Arbeit wahrscheinlich sowieso "besitzt". Aber ich denke, selbst der Versuch, dies zu tun, wird wahrscheinlich "Spannung/Feinde" verursachen, wie Sie es ausdrücken.

Warum? Denn Sie haben buchstäblich nichts zu gewinnen, wenn Sie diesen Code anderen in der Forschungsgruppe vorenthalten – alles, was es tut, ist, andere zu verletzen, was es so aussehen lässt, als ob dies Ihre Absicht gewesen wäre. Und das ist ziemlich wahrscheinlich, die Leute zu ärgern.

Ich betreibe eine Weiterbildung mit dieser Abteilung und möchte meinen Ruf als bedeutendes Mitglied der Forschungsgruppe für die Zulassung verbessern.

Hier ist es anders herum – wenn Sie etwas Sinnvolles im Kontext der Forschungsgruppe schaffen, möchten Sie , dass andere davon profitieren. Je mehr Mitglieder davon profitieren, desto größer ist die Wirkung. Je mehr Leute du versuchst, es davon abzuhalten, desto mehr Leute wirst du haben, die Leuten (wie denen, die an der Aufnahme beteiligt sind) sagen, dass du ein egoistisches Kind bist, das kein Teamplayer ist.

Wenn der Code wirklich so nützlich ist, sollten Sie darüber nachdenken, ihn öffentlich zu machen. Dann riskieren Sie, dafür bekannt zu werden, was Ihnen bei Vorstellungsgesprächen, sowohl in der Industrie als auch in der Wissenschaft, kein bisschen schaden wird...
@FábioDias Obwohl ich nicht anderer Meinung bin, dass es eine nette Werbung für die Fähigkeiten des OP sein könnte, wäre ich überrascht, wenn es keine Einschränkungen dafür gäbe, ob das OP dies tatsächlich mit Code tun kann, der während der Beschäftigung entwickelt wurde.
In der Industrie ja, in der Wissenschaft eher weniger. In jedem Fall muss es vom Vorgesetzten / Berater genehmigt werden ...
@FábioDias ja mit Betreuer/Berater hinter der Idee ist eine ganz andere Geschichte!
Vergessen Sie nicht, Ihren Namen irgendwo in die Ausgabe einzufügen, damit die Leute erkennen, dass Sie ihn geschrieben haben. Etwas so Einfaches wie User107622 Version 1.01 August 2019
@JanDoggen besser dran, mach es wirklich nützlich. Wenn Sie ein Git oder eine andere Instanz haben und der Code vorhanden ist, fügen Sie einen Link dazu hinzu, damit andere dazu beitragen können. Wenn nicht, geben Sie Ihre E-Mail-Adresse mit einem Vermerk wie "Kontakt bei Fehlern oder Funktionsanfragen" an. Wenn dem Programm eine Lizenz zugeordnet ist, fügen Sie sie ebenfalls hinzu.
Ich stimme zu. Aller Wahrscheinlichkeit nach gehört die Arbeit als wissenschaftlicher Mitarbeiter an einer Universität der Universität und nicht dem wissenschaftlichen Mitarbeiter, wie es üblich ist. Sie zahlen nicht, damit die Studierenden ihr persönliches Profil schärfen können, sondern um entweder Geld mit der Forschung zu verdienen oder wissenschaftlichen Zielen zu dienen (oder beides).
Wenn es sich um ein komplexeres Stück Software handelt und nicht nur um einen Haufen einfacher Skripte, die jeder mit einer Vorliebe für Automatisierung zusammenstellen kann, dann stehen die Chancen gut, dass Sie tatsächlich Zitate von allen erhalten, die es verwenden.
Ich stimme dieser Antwort im Allgemeinen zu, aber ich möchte nur darauf hinweisen, dass es nicht gleichbedeutend ist, etwas Nützliches für sich selbst zu behalten, um andere zu verletzen.

Da dies das erste Mal ist, dass Sie "Code für etwas über die Klassenarbeit hinaus schreiben", denke ich, dass es wichtig ist, einige der Grundprinzipien dessen zu lernen, was es bedeutet, Software für Geld zu schreiben, da ich denke, sobald Sie diese verstanden haben, die Antwort auf Ihre Fragen fließen ziemlich natürlich.

Erstes Prinzip: Wenn Sie jemand dafür bezahlt, Code zu schreiben, impliziert das zwei Dinge: Erstens, dass Sie etwas schreiben, um ein Problem zu lösen oder ein Bedürfnis zu erfüllen, das er hat; zweitens, dass sie es besitzen und damit machen können, was sie wollen. Dieses Prinzip ist in den Vereinigten Staaten rechtlich als Work-For-Hire bekannt .

Zweites Prinzip: Der Code, den Sie geschrieben haben, ist nichts Besonderes - es gibt buchstäblich Millionen anderer Leute da draußen, die denselben oder besseren Code hätten produzieren können, um dasselbe Problem zu lösen.

Wenn Sie diese zusammennehmen, werden Sie feststellen, dass es erstens nicht Ihr Code ist (er gehört Ihrem Vorgesetzten oder dem Labor oder der Universität oder wem auch immer) und dass der Code nicht besonders wertvoll ist (alles es lohnt sich, jemanden zu bezahlen, der es umschreibt). Da Ihr Projekt ein "kleines Programmierprojekt" war, das von einem wissenschaftlichen Mitarbeiter geschrieben wurde, ist der Wiederbeschaffungswert eigentlich eher gering.

Jetzt, da Sie sehen, dass der Code selbst nur einen begrenzten Wert hat, müssen Sie verstehen, wo Sie dem Prozess tatsächlichen Wert hinzufügen (damit Sie lernen können, wie Sie mehr Wert hinzufügen – und im Gegenzug mehr Vergütung erhalten).

Ein Entwickler schafft einen Mehrwert für eine Organisation, indem er in der Lage ist:

  1. Verstehen Sie das eigentliche Problem, das gelöst werden muss, richtig (da die Organisation/Person, die die Software anfordert, oft selbst kein klares Verständnis hat und Sie mit ihnen zusammenarbeiten müssen, um es zu verfeinern);
  2. Implementieren Sie eine Lösung, die stabil und skalierbar ist, damit weniger Zeit für die Behebung von Fehlern aufgewendet wird und die Lösung bei immer größeren Problemen funktioniert;
  3. Implementieren Sie eine Lösung, die erweiterbar ist, sodass es einfach ist, diese neuen Funktionen hinzuzufügen, wenn sich die Anforderungen des Eigentümers ändern oder der Eigentümer beschließt, sie mit anderen zu teilen. Dadurch kann dieser Codeabschnitt mehr als ein Problem lösen.

Da Ihr Ziel darin besteht, „Anerkennung zu erhalten“ und „[Ihren] Ruf zu verbessern“, und da dies Formen der Vergütung sind, müssen Sie sich darauf konzentrieren, einen tatsächlichen Mehrwert zu schaffen.

Um einen Mehrwert in Ihrer Situation zu schaffen, sollten Sie jeden potenziellen Benutzer umarmen. Da jeder von ihnen ein etwas anderes Problem zu lösen hat, entwickeln Sie beide ein Fachwissen zur Lösung dieser Art von Problemen (Nr. 1) und entwickeln eine Software, die viele verschiedene Probleme lösen kann (Nr. 3), einschließlich der für Benutzer, die Sie noch nicht identifiziert haben. Jeder von ihnen wird Ihren Code auch anders ausführen, was (hoffentlich) zu einer Software führt, die stabiler und skalierbarer ist, als wenn sie nur für einen einzelnen Benutzer entwickelt worden wäre (#2).

Da Sie sich mit dieser Abteilung weiterbilden möchten - stellen Sie sich vor, wie hilfreich es für Ihre Bewerbung wäre, wenn 2 oder 3 (oder mehr) Forscher beschreiben würden, wie Sie eine Bewerbung erstellt haben, die ihnen geholfen hat, viel Zeit zu sparen, wie Sie es konnten schnell ihr Problem verstehen und es in eine funktionierende und performante Software übersetzen. Das scheint eine wertvolle Sache für Sie zu sein, die Sie aus diesem Prozess gewinnen können.

"Jetzt, wo Sie sehen, dass der Code selbst nur einen begrenzten Wert hat, müssen Sie verstehen, wo Sie dem Prozess tatsächlichen Wert hinzufügen" - großartige Antwort, danke!
"Zweites Prinzip: Der Code, den Sie geschrieben haben, ist nicht besonders - es gibt buchstäblich Millionen anderer Leute da draußen, die denselben oder besseren Code hätten produzieren können, um dasselbe Problem zu lösen." Booo. Er hat Arbeit und Energie hineingesteckt, das ist nicht wertlos. Es erfordert auch praktische Fähigkeiten und Kenntnisse, um guten Code zu schreiben. Sie scheinen den Wert von gutem Code zu unterschätzen.
@Andrew - vielleicht war ich nicht klar. Ich meine nicht, dass der Code keinen Wert hat, es ist nur so, dass der Wert des Codes genau die Kosten für das Umschreiben sind. Mein Punkt ist, dass neue Entwickler denken, dass sie etwas ganz Besonderes produzieren (weil es ihr Baby ist), und nicht erkennen, dass das, was sie produzieren, eigentlich nicht so besonders ist. Wenn ein durchschnittlicher Entwickler 1 Monat für die Produktion benötigt, benötigt ein durchschnittlicher Entwickler 1 Monat für die Reproduktion. Mein Punkt ist, dass es nicht wie ein Picasso ist: Es ist das Werk eines Handwerkers. Und das ist kein Angriff. Ich bin selbst ein professioneller Entwickler.
@Andrew - (Fortsetzung). Als professioneller Entwickler müssen Sie lernen, wie Sie den Wert freisetzen, den Sie wirklich bringen, und verstehen, dass er von der „Maschine“, die Sie bauen, getrennt ist.
Ich stimme Ihrer Meinung zu - aber beweisen die Punkte 2 und 3 nicht, dass Code selbst einen Wert hat? Stabiler, skalierbarer und erweiterbarer Code ist wertvoller als Code, der dies nicht ist. "Der Code ist nicht besonders wertvoll (alles, was er wert ist, sind die Kosten, jemanden dafür zu bezahlen, ihn neu zu schreiben)" scheint eine etwas alberne Aussage zu sein, Sie könnten jedes Produkt darauf reduzieren - "Das Auto ist nicht besonders wertvoll (alles, was es wert ist, sind die Kosten, jemanden für die Herstellung zu bezahlen)".
^ Genau. Und ich bin nicht neu, vielleicht ist das OP. Wir Entwickler schaffen Wert durch das, was wir schaffen, auch wenn es durchschnittlich ist, aber vor allem, wenn es nicht so ist. Was Sie hier wirklich argumentieren, ist, dass wir keinen Wert bieten. "Jeder kann es tun" - Sie sprechen darüber, als wäre es eine heiße Instant-Schokolade. Nein, viele Menschen können das nicht , deshalb bekommen wir eine Prämie. Vielleicht nicht, ich weiß es nicht. Aber ihr Jungs macht weiter und nehmt alle Stimmen, obwohl ihr falsch liegt.
@JShorthouse - Der Punkt, den ich zu machen versuche, ist, dass eine Software genau ein hergestelltes Produkt ist, im Gegensatz zu so etwas wie einem Picasso. Newish-Entwickler neigen dazu zu denken, dass sie Picassos produzieren, und erkennen nicht, dass sie nur Autos produzieren.
@Andrew - Ich habe nie gesagt "jeder kann es tun". Ich habe gesagt, dass es "Millionen" von Menschen gibt, die es können - was wahr ist: Es gibt Millionen von Softwareentwicklern auf der Welt. Mein Punkt, der meiner Meinung nach zu klobig rüberkam, war, dass der Wert einer Software nicht in ihrer Existenz liegt, sondern in den Problemen, die sie löst. Um als Softwareentwickler wertvoll zu sein, muss man meines Erachtens als Problemlöser wertvoll sein.
Ich denke, Sie machen das zu schwarz und weiß, wenn es wirklich irgendwo dazwischen liegt. Ja, Ihr Hauptwert als Entwickler besteht darin, Probleme verstehen und effizient lösen zu können, aber das bedeutet nicht, dass der von Ihnen erstellte Code an sich nicht wertvoll ist.
@JShorthouse Der genaue Wortlaut in der Antwort lautet "der Code ist nicht besonders wertvoll", nicht "der Code ist nicht wertvoll". Der Code hat keinen besonderen Wert, da er von einem bestimmten Entwickler erstellt wurde. Es hat keinen intrinsischen oder besonderen Wert - es hat nur Wert, weil es ein Problem löst (was zukünftige Erweiterbarkeit, Klarheit der Architektur usw. beinhaltet) und es ist nicht wertvoller als Code, der von einem anderen Entwickler geschrieben wurde und die gleichen Probleme gleichermaßen gut löst , was nicht schwer zu bekommen ist. Der Wortlaut der Antwort ist für jede Bedeutung des Wortes "besonders" zutreffend.
Abhängig davon, was OP getan hat, lautet das äußerste Ende von Nr. 2: „Warum haben sie nicht einfach nach Open-Source-Code gesucht, der bereits da draußen ist, und ihn optimiert?“. Während die Punkte wahr sind, denke ich, dass dies besser bearbeitet werden könnte. Während Code anhand der Kosten für das Umschreiben bewertet werden könnte, könnten wir ihn auch anders bewerten: Wie viel Zeit/Geld wird durch die Wartung gegenüber dem Neuschreiben von Grund auf gespart? könnten wir Open-Source-Code finden und ihn optimieren, um letztendlich Zeit beim Umschreiben zu sparen? und wie viel Zeit wird es dauern, Benutzer umzuschulen (auch bekannt als: Benutzerzeit, auch bekannt als: Benutzer, die für die Umschulung bezahlt werden)
Natürlich werde ich auch sagen, dass diese Kommentare (einschließlich meines ersten) darüber diskutieren, wie ein kleiner tangentialer Teil einer wirklich soliden Antwort verbessert werden kann.

Ich bin auch ein Forschungsprogrammierer, der in der Wissenschaft arbeitet. Wir haben das Glück, in einem Bereich tätig zu sein, in dem das Teilen von Daten und Methoden die Norm ist. Ich, alle meine Kollegen, und ich wette, Sie auch, haben alle von jahrzehntelanger früherer Forschung profitiert, die veröffentlicht und uns zur Verfügung gestellt wurde. Sie treibt den wissenschaftlichen Fortschritt voran.

Es ist jedoch vollkommen vernünftig, eine gewisse Anerkennung für Ihre Arbeit zu wünschen. Ich würde vorschlagen, ein Github-Konto einzurichten und Ihre Arbeit dort zu veröffentlichen, mit einer kleinen Anleitung zur Verwendung. Wenn Ihre Arbeit von anderen Forschern verwendet wird, ist dies für Ihre Karriere weitaus besser, als nur von Ihrem PI auf die Schulter geklopft zu werden. In Bewerbungsschreiben an Graduate Schools über die Auswirkungen eines von Ihnen veröffentlichten Datenanalyse-Tools sprechen zu können, wird sehr gut aussehen.

Ich würde vorschlagen, dass das OP die Genehmigung seines Professors einholt, bevor es öffentlich veröffentlicht wird, da dies als geistiges Eigentum der Universität angesehen werden könnte. Es kann auch eine Situation geben, in der sie den Code veröffentlichen, aber erst, nachdem die Recherche abgeschlossen ist, so dass auch das Timing ein Problem sein kann. Vor allem, wenn sie um ein Stipendium konkurrieren. Auch wenn sie den Code irgendwann teilen werden, gibt es keinen Grund, konkurrierenden Agenturen anstelle von Ihnen ein kostenloses Tool zur Verfügung zu stellen, das ihnen hilft, den Zuschuss zu erhalten.

Ich glaube nicht, dass Sie Ihren Code vor Ihren Kollegen schützen können. Universitäten haben normalerweise einige ziemlich strenge Klauseln zum geistigen Eigentum in ihren Arbeitsverträgen. Dies kann jedoch auch von dem Land abhängen, in dem Sie sich befinden.

Aber am Ende denke ich, dass Sie ein Mitarbeiter der Universität sind und Ihr Vorgesetzter Ihnen aufgetragen hat, etwas zu produzieren. Dieses Etwas wird am Ende wahrscheinlich der Universität gehören. Sie werden wahrscheinlich der Tatsache ins Auge sehen müssen, dass etwas, das Sie anstelle Ihrer Arbeit für jemand anderen geschaffen haben, nicht Ihnen gehört.

Sie könnten argumentieren, dass diese Aufgabe außerhalb Ihres Vertrags liegt, aber ich glaube nicht wirklich, dass dies hier funktionieren wird und die Beziehung zu Ihrem Vorgesetzten ernsthaft beeinträchtigen könnte.

Wenn der Code nicht bereits unter einer Lizenz existiert und Sie Ihren Vorgesetzten davon überzeugen, diesen Code zu verwenden, sehe ich keine Möglichkeit, Ihren Code zu schützen.

Zunächst einmal, wenn Sie nur wegen des Geldes als RA arbeiten, müssen Sie sich keine Sorgen machen, da Ihr Arbeitgeber sowieso Ihren Code besitzt, wie in den obigen Antworten ausführlich behandelt.

Aber ich gehe davon aus, dass Sie auch in die Forschung investiert sind und den Wunsch haben, sich als Forscher einen Namen zu machen. In diesem Fall ist es wichtig zu verstehen, dass die Hauptwährung in der Forschungsgemeinschaft Reputation und Sichtbarkeit sind. Das gemeinsame Verfassen und Präsentieren von Forschungsarbeiten ist eine großartige Möglichkeit, Ihren akademischen Ruf zu stärken, aber die Veröffentlichung von nützlichem und weit verbreitetem Quellcode ist eine andere.

Es ist möglich, Ihren Code unter einer Lizenz zu veröffentlichen, die andere dazu zwingt , Sie anzuerkennen, wenn sie Ihren Code verwenden, aber ich rate Ihnen von diesem Kurs ab, da er Ihre Benutzer unnötig verärgert und die Wahrscheinlichkeit einer Übernahme verringert. Setzen Sie Ihren Namen in einen Kommentar am Anfang der wichtigsten Quelldateien und fügen Sie eine freundliche Notiz in den Code/die README-Datei ein, etwa „Wenn Sie diesen Code verwenden, bestätigen Sie bitte Person XXX und zitieren Sie Papier YYY!“ ist in der Regel ausreichend.

Daher sollten Sie standardmäßig möchten, dass Ihr Code so weit wie möglich verbreitet und verwendet wird!

Allerdings gibt es manchmal gute Gründe, den Code privat zu halten:

  • Ihr Vorgesetzter ist der Ansicht, dass die Veröffentlichung des Codes riskiert, Ihre Forschung oder die Forschung anderer Mitglieder Ihres Labors zu stehlen;
  • Ihr Vorgesetzter möchte andere Labore für die Mitautorenschaft an Papieren oder Zuschüssen im Austausch für den Zugriff auf den Code "erpressen" (ich dulde dieses Verhalten nicht, aber es passiert);
  • die Forschung wird von einem Unternehmen oder einer staatlichen Organisation gesponsert, die die Geheimhaltung des Codes verlangt;
  • der Code enthält private Daten, die durch HIPPA, FERPA usw. geschützt sind;
  • Ihr Vorgesetzter/Ihre Universität möchte die im Code verwendeten Algorithmen patentieren lassen, was in einigen Gerichtsbarkeiten eine Begrenzung der öffentlichen Veröffentlichung bis nach Einreichung der Anmeldung erfordert;
  • usw.

Fazit: Sie sollten Ihren Code von so vielen Menschen wie möglich verwenden lassen , aber sprechen Sie mit Ihrem Vorgesetzten über Ihre Bedenken und bitten Sie um Erlaubnis, bevor Sie den Code auf einem öffentlichen GitHub veröffentlichen oder an andere weitergeben.

Zusätzlich zu Kommentaren, die um Mitautorschaft/Zitat/Anerkennung am Anfang des Quellcodes und/oder in einer README-Datei bitten, sollten Sie auch in Betracht ziehen, genau diese Nachricht als Teil der Ausgabe zu drucken. Wenn die Textausgabe des Programms für den menschlichen Gebrauch bestimmt ist, stdoutist das in Ordnung; wenn es für nachgelagerte Software gemein ist, es zu konsumieren, schreiben Sie es anstderr

Sie sollten sich freuen, dass Sie die Möglichkeit haben, ein solches Projekt in Ihren Lebenslauf aufzunehmen. Wenn Sie dies nutzen, wird dies definitiv ein Gesprächsthema für alle zukünftigen Jobaussichten sein. Im Großen und Ganzen werden Sie in fünf Jahren nicht einmal mehr an das Projekt denken

Um Ihre Frage tatsächlich zu beantworten: Anbieter schützen ihren Code, indem sie die Binärdatei des Codes (z. B. eine ausführbare Datei) verteilen, die in einem Texteditor nicht interpretiert werden kann

Um den Punkt zu demonstrieren, wenn das Programm in Go geschrieben ist und Sie myProgram.go verteilen, dann wird Ihr Code geteilt, wenn Sie myProgram als ausführbare Unix-Datei oder exe-Datei versenden, dann kann es nicht interpretiert werden

Bei Javascript kann die Verschleierung durch Minimierung Ihrer Datei erfolgen. Dadurch werden alle Ihre Funktionen und Variablen in einem schwieriger lesbaren Format dargestellt. Beispiel: "myFunctionToSendOutAnEmail()" würde in "a()" geändert. Minimierte JS-Dateien haben die Erweiterung myProgram.min.js im Gegensatz zu myProgram.js

Dies steht in völligem Widerspruch, nicht nur zum gesamten Bereich der akademischen Forschung, wo die Notwendigkeit, dass die Ergebnisse reproduzierbar sind, bedeutet, dass Code typischerweise zur Unterstützung von Artikeln veröffentlicht wird, sondern auch zu der Tatsache, dass man ein Mitarbeiter und Teil eines kollaborativen Teams ist . Die Institution kann beschließen, etwas intern zu behalten, aber es vor Kollegen zu verstecken, ist nicht praktikabel.
Der Zweck meiner Antwort war nicht, die ethische Frage zu beantworten, sondern eine Methode zum Schutz seiner Arbeit. Es ist nicht meine Pflicht, OP ethisch zu machen, aber ich kann das Wissen teilen, um etwas Unethisches zu tun
Das Problem ist nicht die Ethik, das Problem ist, dass Ihr Vorschlag in der Situation der Frage oder so etwas völlig undurchführbar ist. Die Person ist kein Unternehmen, das mit Kunden interagiert, sie ist ein Angestellter und Mitarbeiter in einem Team.
Das bedeutet nicht, dass sie keine Binärdateien verteilen könnten, wenn sie wollten, solange die Programmdateien lokal auf ihrem Computer gespeichert sind
Sie scheinen keine Ahnung zu haben, wie ein kollaborativer Arbeitsplatz funktioniert oder wie Softwareentwicklung außerhalb der Steinzeit funktioniert. Kein verantwortlicher Vorgesetzter würde einem Mitarbeiter oder Teammitglied erlauben, kritischen Quellcode vor Personen geheim zu halten, die ihn realistischerweise wahrscheinlich überprüfen, warten, erweitern und bewahren müssen.
Ich hatte den Eindruck, dass er nicht mit anderen Entwicklern zusammenarbeitet? Aber war nur ein Analyst, der vielleicht Software lernen möchte. Natürlich würde man das in keinem richtigen Entwicklerteam tun