Gründe, keinen Open Source-Code für gemeinnützige Zwecke zu verwenden? [geschlossen]

34

Ich bin ein großer Fan von Open Source Code. Ich denke, ich verstehe die meisten Vorteile von Open Source. Ich bin ein wissenschaftlicher Forscher und muss mit einer erstaunlichen Menge an Software und Code arbeiten, die nicht Open Source sind (entweder proprietär oder nicht öffentlich). Ich kann keinen guten Grund dafür erkennen, und ich kann sehen, dass der Code und die Leute, die ihn verwenden, definitiv davon profitieren würden, öffentlich zu sein. und das ist viel schwieriger, wenn andere keinen Zugriff auf Ihren Code haben).

Bevor ich Missionierung gehen und beginnen, möchte ich wissen: Gibt es gute Argumente für nicht not-for-Profit - Code öffentlich freigeben und mit einer OSI-konformen Lizenz?

(Ich weiß , es gibt ein paar ähnlichen Fragen auf um, aber die meisten konzentrieren sich auf Situationen , in denen der Code in erster Linie für die Herstellung von Geld verwendet wird, und ich konnte nicht viel relevant in den Antworten.)

Klarstellung: Mit "nicht gewinnorientiert" beziehe ich nachgelagerte Gewinnmotive wie die Markenbekanntheit der Muttergesellschaft und die Gewinnerwartungen der Anleger ein. Mit anderen Worten, die Frage bezieht sich nur auf Software, für die KEIN Gewinnmotiv an die Software gebunden ist.

naught101
quelle
+1 wie ich finde das eine interessante frage selber. Aber ich frage mich, ob dies der richtige Ort ist, um dies zu fragen. Vielleicht würden Sie von anderen SE-Sites, wie der PM.SE-Site, andere Perspektiven erhalten. Nur ein Vorschlag.
Haylem
@haylem, ich hatte PM.SE nicht gesehen, aber das scheint eher für technische Aspekte des Projektmanagements zu sein?
Naught101
Wirst du das Projekt danach aktiv pflegen oder ist es ein Code-Friedhof? Mit anderen Worten, wie sieht die Zukunft des Projekts aus?
@ ThorbjørnRavnAndersen: Ja, ich gehe von einer aktiven Wartung, Entwicklung und Verwendung des Codes aus.
Naught101

Antworten:

28

Sie müssen berücksichtigen, dass Open Sourcing Ihres Codes möglicherweise zusätzlichen Aufwand erfordert.

In diesem Blogeintrag beschreibt Sun / Oracle Engineer beispielsweise die Anstrengungen, die sie beim Open-Sourcing ihres Codes unternehmen mussten: Open Source oder Dirty Laundry?

Während wir uns darauf vorbereiten, in die Open-Source-Welt einzutauchen, besteht eine der vielen Aktivitäten darin, den Code für Open-Sourcing vorzubereiten. Es gibt einige offensichtliche Dinge, die getan werden müssen. Zum Beispiel enthält unser Quellcode eine Mischung aus Code, den wir geschrieben haben, und Code, den wir von anderen lizenziert haben. Wir müssen letztere trennen und nur die entsprechenden Codeteile als Open Source-Dateien bereitstellen.

Eine andere Vorbereitungsaktivität ist das "Scrubben" des Codes für proprietäre Informationen, Erwähnungen bestimmter Kunden, Entwickler, Technologien usw. Dies ist etwas weniger offensichtlich, aber betrachten Sie das folgende Beispiel:

/\*
 \* HACK - insert a time delay here because the stupid Intertrode
 \* Technologies framebuffer driver will hang the system if we
 \* don't. Those guys over there must really be idiots.
 \*/

Obwohl all das oben Genannte zutrifft, haben wir wahrscheinlich eine Art Beziehung zu Intertrode Tech, und Kommentare wie diese im Code könnten unser Geschäft irgendwie schädigen und sollten daher entfernt werden. Vielleicht hätte es gar nicht dort sein sollen, aber jetzt ist es an der Zeit, es rauszunehmen.

Ein weiterer Teil der "Schrubb" -Aktivität besteht darin, Schimpfwörter und andere "unerwünschte" Wörter zu entfernen ...

Beachten Sie alle oben genannten Änderungen am Code vorgenommen werden mussten , die als Closed - Source vollkommen in Ordnung angesehen wurde - , dass es rein macht zusätzliche Anstrengungen so zu sprechen.

Mücke
quelle
2
Nun, dies gilt für große Unternehmen mit bestehender Codebasis, ganz zu schweigen von Code, der von Grund auf als Open Source geschrieben wurde.
Konrad Rudolph
1
@KonradRudolph OP erwähnt ich mit ... Code zu arbeiten, die nicht Open Source ist (entweder es ist proprietär, oder es ist nicht öffentlich) bedeutet , dass es nicht schon dort von Grund auf
gnat
Ist mit DOOM 3 nicht dasselbe passiert? Patentausgabe
verzögert die
11

Sicherheit.

Angenommen, Sie erstellen ein Webframework und verwenden es selbst.

Als gemeinnütziges Projekt hatten Sie nicht die Zeit, jeden Code auf Anfälligkeit für den einen oder anderen Angriff zu untersuchen:

  • CSRF
  • XSS
  • SQL-Injektion
  • Sitzungsfixierung
  • Verwendung fehlerhafter Bibliotheken von Drittanbietern oder sogar von Sprachen

Nachdem Sie das Projekt mit Open-Source-Funktionen erstellt haben, gestatten Sie freundlichen Augen, einen Beitrag zu leisten, aber auch böswilligen Augen, einen vollständigen Einblick in Ihre Arbeit zu erhalten. Wenn sie einen Server finden, auf dem Ihr Code ausgeführt wird, haben Sie die Möglichkeit, Ihren Code zu verbergen, aufgehoben Unvollkommenheiten im Dunkeln.

Dies gilt natürlich möglicherweise nicht für die Art von Software, an der Sie arbeiten. und wie immer Unklarheit ist keine Entschuldigung für Faulheit in Sicherheit.

Genauso wie ich in den Levels, die ich im Stripe Capture the Flag-Spiel durchlaufen habe, festgestellt habe , ist das Wissen, dass der Code der einfachste Weg ist, um Sicherheitslücken zu finden (und manchmal kann es der einzige Weg sein).

Nicole
quelle
7
Diese Debatte wird schon seit Ewigkeiten geführt, und ich hatte den Eindruck, dass Open Source besser für die Sicherheit ist, aber nur, wenn das Projekt ziemlich beliebt ist (zumindest bei Entwicklern). Es ist seltsam, dass es nirgendwo im Netz eine wirklich gute Abnutzung der Argumente gibt (die ich sowieso finden kann).
Naught101
1
In Kombination mit dem Kommentar von naught101 macht das sehr viel Sinn. Wenn sich weniger Leute um Ihre Quelle kümmern und Sie sie in der Produktion verwenden, stehen die Chancen gut, dass jemand "Böses" sie inspiziert und sie (irgendwann) gegen Sie einsetzt
schlingel
1
Sicherheit durch Dunkelheit?
Danubian Sailor
3
@lechlukasz Hast du den ganzen Beitrag überhaupt gelesen?
Nicole
1
@Oleksi Danke, aber das weiß ich. Ich sagte: "Dunkelheit ist keine Entschuldigung für Faulheit in der Sicherheit." Bei dieser Frage geht es nicht um das Öffnen gegen das Schließen, sondern um das Öffnen eines zuvor geschlossenen Systems. Ich stimme dem Link, den Sie gepostet haben, zwar vollkommen zu, aber die Entwickler sind nicht perfekt. Wenn Sie ein System als Open Source-Entwickler verwenden, besteht die Möglichkeit, dass die ersten Augen, die einen Fehler entdecken, ihn ausnutzen, anstatt ihn für Sie zu beheben.
Nicole
10

Ein guter Grund, nicht auf Open Source zuzugreifen, ist, dass einige Ihrer Quellen urheberrechtlich geschützt sind. Wie oft suchen Sie nicht im Web nach einer schnellen Lösung für ein Problem und nehmen nur den Code-Ausschnitt, den Sie finden?

Nun, diese sind möglicherweise urheberrechtlich geschützt, und ich weiß nicht, ob der Autor seinen Code unter einer anderen Lizenz erneut lizenzieren möchte.

Pieter B
quelle
1
+1 für urheberrechtlich geschützt. Ich wollte nur noch Patente hinzufügen. Sie werden vielleicht feststellen, dass Ihr Open-Source-Projekt gegen einige der Tausenden von Softwarepatenten verstößt, die vom "Corps" bewohnt werden. Video streamen? Patentiert. Pay-per-Click-Anzeigen? Patentiert. Nur einige Beispiele. Es besteht jedoch die Möglichkeit, dass sich das "Corps" nicht darum kümmert - es sei denn, Sie sind ein Konkurrent.
Amadeus Hein
1
Hehe Das ist kein wirkliches Argument gegen Open Source, sondern gegen Piraterie. Aber Sie haben Recht, ich wette, das ist ein Problem in vielen großen privaten Codes.
Naught101
1
@ naught101 Einverstanden. Open Source macht nur das Problem sichtbar. Geschlossenes Eigentum in diesem Fall ist eine Sache, nicht erwischt zu werden;)
Andres F.
Sie sagen also, dass ein Grund, die Quelle geschlossen zu halten, darin besteht, dass Sie gelegentliche Verstöße gegen das Urheberrecht verbergen können? Halten Sie das nicht für einen eher unethischen Grund?
Mark Booth
1
Unethisch ... vielleicht ein sehr, sehr guter Grund, mit Sicherheit kein Open Source zu betreiben.
Pieter B
6

Sie müssen bei der Auswahl Ihrer Lizenz vorsichtig sein, um mögliche Haftungsprobleme zu vermeiden.

Ein Anwalt ist vielleicht eine bessere Person, um darüber zu sprechen, aber die allgemeine Idee ist, was passiert, wenn jemand die Anwendung verwendet (oder missbraucht) und sie Schaden anrichtet? Bist du verantwortlich? Dies hängt natürlich davon ab, welche Art von Software Sie schreiben, aber Sie müssen immer vorsichtig sein, was Ihre Lizenz über Ihre Haftung aussagt. Es kann schwierig sein, dies zu korrigieren. Daher ist es möglicherweise einfacher, den Quellcode einfach nicht freizugeben.

Oleksi
quelle
1
Ja, das ist ein guter Punkt, und die meisten OS-Lizenzen enthalten normalerweise irgendwo Text, der den Arsch bedeckt. Ich nehme an, dass ich eine "Haftungsausschluss" -Lizenz angenommen habe.
Naught101
4

Warnung: Ich bin kein Anwalt .

Nun, wenn es sich um eine gemeinnützige Organisation handelt und ihr geistiges Eigentum stark an den Code der Software gebunden ist, möchten einige möglicherweise verhindern, dass sie kommerziell wiederverwendet oder sogar missbräuchlich zum Erstellen von Kopien Ihrer Software ausgenutzt wird.

Einige andere Gründe - die wahrscheinlich tief in der ersten verwurzelt sind - sind, dass in Ihrem Fall ein Großteil der High-End-Forschung mit privater Finanzierung erfolgt und die Investoren normalerweise einen ROI sehen möchten. Und bis jetzt sind noch nicht alle Akteure der Softwareindustrie (oder Neulinge) vollständig von der Realisierbarkeit des Open-Source-Modells überzeugt worden (höchstwahrscheinlich aufgrund fehlenden Wissens und Verständnisses für Lizenzen oder einfach aufgrund der Befürchtung, dass Lizenzen schädliche Aktivitäten nicht verhindern könnten) Verwendungen und Kopien).

Darüber hinaus möchten diese Unternehmen nicht von denjenigen verklagt werden, die versucht haben, auf ihrem Rücken Gewinne zu erzielen, und die Lizenzierung wird auch in dieser Hinsicht aus gutem Grund als Schutz angesehen.

Es mag nicht so erscheinen, aber vielleicht sind gemeinnützige Organisationen für ihre Gründer oder Investoren rentabel. Die Vorteile sind einfach nicht direkt. Sie haben daher ein großes Interesse daran, dass die NFPs stark werden und nicht von Wettbewerbern an den Rand gedrängt werden (auch wenn man auf dem gemeinnützigen Markt nicht oft an "Konkurrenten" denkt), und sie möchten ihre Position bewahren IP, auch wenn es nicht darum geht, mehr freie Augäpfel zu bekommen, um ihren Code zu überprüfen, um Probleme zu finden und ihn früh zu verbessern.

Beachten Sie auch, dass das Urheberrecht von Land zu Land unterschiedlich ist. In vielen europäischen Ländern sind die US-amerikanischen Urheberrechtsgesetze und das US-amerikanische Patentsystem zum Beispiel eher verblüfft. Daher gibt es einen kulturellen Hintergrund und ein Gewicht, die nur schwer abzuschütteln sind.

Jut meine 2 Cent zu diesem Thema.

(Ich habe viel mit Universitäten zusammengearbeitet und in letzter Zeit in Bioinformatik und Gesundheitswesen ... Es ist eine immer wiederkehrende Frage für mich und meine Kollegen :))

Haylem
quelle
Hrm .. Ich habe den Code und die IP in meiner Frage zusammen betrachtet. Vielleicht hätte ich das klarer machen sollen. Ich würde ROI- und Branding-Überlegungen als
Gewinnmotive ansehen
Klärte die Frage. Tut mir leid wegen dem Ärger.
Naught101
Ich würde Ihren Bereich als rentabel betrachten. Es hat vielleicht keinen breiten Markt, aber es bedeutet nicht, dass es nicht rentabel ist. Im Prinzip würde ich davon ausgehen, dass es sich um ziemlich viel Geld handelt. Warum fühlst du dich anders?
Haylem
Ich bin in der Klimamodellierung. Niemand zahlt für Klimamodelle. Niemand zahlt für die Verwendung von Klimamodellen. Mit der Verwendung der Software kann kein Gewinn erzielt werden. Die Leute werden dafür bezahlt, mit diesen Modellen zu recherchieren (und dazu gehört oft auch das Schreiben der Modelle), und manchmal wird Rechenzeit dafür bezahlt, aber beide bedeuten, dass das Teilen von Code die Dinge billiger macht (mehr Zeit für Recherchen anstatt Code zu schreiben) , weniger Zeitverschwendung für HPC-Anlagen). Ich sehe nicht wirklich, wie die Software mit der Rentabilität zusammenhängt.
Naught101
1
@psr: Ich denke, das ist der Punkt von naught101: Es gibt profitable Ergebnisse für die Ergebnisse der Modellverwendungen, aber nicht unbedingt viel Geld, das für den Verkauf von Software zur Implementierung des Modells ausgegeben wird. Überrascht mich auch, könnte aber sehr gut sein.
Haylem
1

Es gibt mindestens zwei verschiedene Arten von Open Source.

Wenn Ihre Einstellung lautet "hier ist etwas Nützliches, ich bin fertig damit" (und das ist richtig), dann gibt es wenig Nachteile.

Auf der anderen Seite, wenn Ihre Einstellung lautet "Ich bin sehr aufgeregt und möchte, dass einige echte Benutzer die zukünftige Entwicklung vorantreiben", dann überlegen Sie genau. Sie müssen Zeit damit verbringen, Benutzer zu unterstützen, von denen viele ahnungslos sind. Sie müssen widersprüchliche Anforderungen für Funktionen und Verbesserungen berücksichtigen. Es wird immer schwieriger, Änderungen vorzunehmen, um die Abwärtskompatibilität zu gewährleisten.

ddyer
quelle
3
Ich verstehe nicht wirklich, wie die Freigabe von Code jemanden zur Bereitstellung von Support verpflichtet. Und zumindest in der Wissenschaft sind die meisten Benutzer ziemlich genau informiert, zumindest über den Prozess, wenn nicht den Code selbst.
Naught101
1
@ naught101: verpflichtet nein, aber wenn jemand Ihren Code verwendet, Sie werden E-Mails, Fragen, Anregungen ... , die erhalten wird , um Griff einige Mühe, es sei denn Sie sie einfach wählen zu ignorieren. Außerhalb der Naturwissenschaften sind viele Benutzer nicht besonders informiert, sodass Sie möglicherweise Leuten bei grundlegenden Einrichtungsproblemen usw. helfen, nur weil Sie zufällig Code veröffentlicht haben. Das habe ich zumindest erlebt. Auch BSD-Haftungsausschluss „ zur Verfügung gestellt wie“ usw. nicht - und soll nicht - Stopp Menschen Hilfe zu bitten.
Joonas Pulakka
1
Positiv bewertet, weil diese Antwort nicht weniger zutreffend ist als viele andere. @JoonasPulakka: Natürlich sollte es die Leute nicht davon abhalten, um Hilfe zu bitten. Aber es sollte sie davon abhalten, eine Antwort zu erwarten. Wenn Sie die eigentliche Software in der Öffentlichkeit haben, haben Sie vermutlich die gleiche Verantwortung gegenüber den Benutzern, unabhängig davon, ob Ihr Code öffentlich ist (abhängig von der EULA, möglicherweise). Vielleicht müssen Sie mehr Anfragen von Entwicklern erwarten , wenn Sie den Code veröffentlichen, aber es wäre schön zu glauben, dass die meisten von ihnen eine Ahnung haben und einige Ratschläge ein oder zwei Mal zurückzahlen könnten.
naught101