Entwickler von Software haben die Wahl, eine geeignete Lizenz in Übereinstimmung mit den Zielen der Arbeit zu wählen.
Kann jemand Empfehlungen / Erfahrungen geben, welche Lizenz für Software ausgewählt werden soll?
Was sind die Vor- / Nachteile, wenn alle codierten Werke als Open-Source-Codes "verschenkt" werden?
Wie gehe ich mit industriellen Akteuren um, die vom Forschungskodex profitieren möchten?
Antworten:
Welche Lizenz Sie gewählt haben, hängt davon ab, wie frei Ihr Code sein soll, aber frei bedeutet für verschiedene Personen unterschiedliche Dinge.
Je freizügiger eine Lizenz ist, desto mehr Benutzer können sie verwenden, aber desto weniger Kontrolle haben Sie darüber. Je restriktiver es ist, desto wahrscheinlicher ist es, dass Sie die Leute davon abhalten, Ihre Software zu benutzen.
Es gibt eine Reihe von kostenlosen und Open Source-Lizenzen, darunter GPL <= 2, GPL 3 , LGPL , BSD , Eclipse und so weiter. Es gibt Vor- und Nachteile für jeden. Informieren Sie sich daher, welche Einschränkungen für den Code gelten, und entscheiden Sie, wen Sie in der Lage sein möchten, ihn zu verwenden. Achtung , egal für wen Sie sich entscheiden, Sie werden sich beschweren - das ist heiliges Kriegsgebiet .
Insgesamt handelt es sich um einen subtilen Balanceakt, der sehr stark von der Zielgruppe Ihrer Software abhängt.
Meiner Meinung nach sind für wissenschaftlichen Code sowohl Genehmigungs- als auch Copyleft- Lizenzen geeignet. Wichtig ist, dass der Code in erster Linie Open Source ist. Ich bin der Meinung, dass die Wissenschaft offen sein sollte, ebenso wie der Code, der zur Unterstützung dieser Wissenschaft verwendet wird.
Die Idee, Ihre Software zu verschenken, ist, dass andere Benutzer sie verwenden, wenn sie sie nützlich finden.
Wenn sie es verwenden, werden sie Fehler finden, melden und häufig beheben, was Ihnen die Mühe erspart, dasselbe zu tun.
Wenn sie es mögen und Ihre Software fast das tut, was sie wollen, können sie Ihre Software verbessern und diese Verbesserungen zurückbringen.
Das ist allerdings eine Menge Wenn .
Wenn Sie die kommerzielle Nutzung Ihres Codes verbieten möchten, können Sie zunächst eine Lizenz mit einer Klausel auswählen, die keine kommerzielle Wiederverwendung vorsieht.
Zweitens, wenn Sie der Meinung sind, dass jemand Ihre Software zum Betreiben eines Dienstes verwenden könnte, ohne den Code jemals an einen anderen zu verteilen, könnten Sie die Affero GPL in Betracht ziehen, die diese Copyleft-Lücke schließt.
Drittens können Sie die oben genannten Schritte ausführen und eine Doppellizenzoption anbieten. Wenn Sie GPL- oder AGPL-Lizenzen zum öffentlichen Download und kommerzielle Lizenzen gegen eine Gebühr anbieten, haben Sie das Beste aus beiden Welten und können möglicherweise sogar Einnahmen aus dem kommerziellen Verkauf Ihrer Software erzielen, die Ihre wissenschaftlichen Aktivitäten unterstützen.
Wenn Sie dies tun möchten, bieten Sie es von Anfang an an - dies verursacht wahrscheinlich weniger Reibung bei Ihren Open-Source-Mitwirkenden, als wenn Sie später kommerzielle Lizenzen anbieten. Wenn Ihre Community populär wird, möchten Sie nicht, dass die Leute Sie beschuldigen, ausverkauft zu sein, wenn Sie nicht genau über die Möglichkeit einer späteren kommerziellen Ausbeutung informiert sind. Idealerweise sollten Sie einen geeigneten Mitwirkenden-Lizenzvertrag (Contributor License Agreement, CLA) einrichten, bevor Sie Beiträge von Dritten in Ihre Codebasis aufnehmen.
Die Antwort auf diese Frage enthält auch einige gute Informationen zu dieser Option.
quelle
PETSc verwendet diese Lizenz , die eine weniger restriktive Form von BSD darstellt . Der entscheidende Unterschied zur GPList, dass die Software kommerziell genutzt werden kann. Viele Leute haben einen grundsätzlichen Einwand gegen geschlossene Software, aber meiner Erfahrung nach geht kein Geschäft in die Nähe Ihres Codes, wenn er eine GPL-Lizenz hat. Darüber hinaus waren die industriellen Anwender von PETSc unglaublich wertvoll. Sie neigen dazu, recht komplexe Probleme zu lösen, die die meisten Wissenschaftler für eine Veröffentlichung schwieriger als gerechtfertigt finden würden. Sie haben auch eine Menge Code an PETSc zurückgegeben, damit dieser in die normale Support-Kette eingeht. Ich würde von jeder Lizenz ohne kommerzielles Nutzungspotential abraten und in der Tat die am wenigsten einschränkende Lizenz befürworten (Sie könnten auf jeden Fall PETSc auf eine CD brennen und versuchen, sie an die leichtgläubige zu verkaufen).
quelle
Ich benutze die GPL hauptsächlich wegen der Einstellung zur ursprünglichen Open-Source-Bewegung (und hoffe daher, dass sie deren Verbreitung unterstützt). Darüber hinaus ist dies paradoxerweise der beste Weg, um Ihre möglichen Einnahmen vor unmoralischen Kapitalisten zu schützen. Als Autor können Sie den Code immer auf einer anderen Lizenz parallel verteilen und so die proprietäre Version für eine White-Label-Geschäftsnutzung beibehalten.
Dies kann jedoch auch eine Konsequenz sein - Ihre Finanzierungsquelle könnte einen Haftungsausschluss dafür enthalten, dass alle Ihre Arbeiten gemeinfrei werden sollten, was über diese Lizenz hinausgeht.
Auf jeden Fall ist das Wichtigste in diesem Thema , dass jede Lizenz ist besser als gar keine, das in der wissenschaftlichen Entwicklung Welt leider recht oft ist - und ich hasse es , alle diejenigen / * Stolen von John Smith Programm , das er noch nie veröffentlicht * / oder C Ich glaube, ich habe das 1995 in Jane Smiths Post bei einer Gruppe gesehen ... oder vielleicht 1993?
quelle
Erstens die Vor- und Nachteile von Open Source:
Pro: Mehr Menschen werden Ihren Code verwenden, Feedback, Korrekturen, Verbesserungen usw. bereitstellen. Sie werden am Ende besseren Code haben und mehr Menschen, die ihm vertrauen.
Con: Wenn Sie jemals ein Unternehmen in Ihrem Code gründen möchten, haben Sie weniger Möglichkeiten (aber es gibt immer noch einige, wie zum Beispiel den Verkauf von Beratungsdiensten).
Bei der Auswahl einer Lizenz würde ich in der folgenden Reihenfolge vorgehen:
quelle
Der Großteil meiner Forschung wird aus öffentlichen Mitteln finanziert, und daher fühle ich mich verpflichtet, die geringstmögliche Einschränkung der Lizenz zuzulassen. Habe ich wirklich das Recht, anderen Menschen in meinem Land mitzuteilen, dass sie meinen Code nicht in eine Closed-Source- und / oder kommerzielle Softwareverteilung integrieren können, wenn sie für diese Forschung mitzahlen? Ich erwarte, dass die meisten Leute, die meinen Code verwenden, akademische Wissenschaftler sein werden, aber ich habe keine philosophischen Probleme mit Unternehmen, die meine Software verbessern, indem sie in andere (möglicherweise kommerzielle) Software integriert, eine grafische Benutzeroberfläche erstellt usw., um ein Produkt bereitzustellen das hilft ihnen, Gewinn zu machen.
Davon abgesehen versuche ich, Lizenzen zu verwenden, die eine ordnungsgemäße Zuordnung erfordern. Zum Beispiel, wenn ein Unternehmen nicht meinen Code in ein größeres kommerzielles Produkt falten, ich will sie dafür sorgen, dass mein Code machen kann klar von mir frei erhalten werden. Ansonsten möchte ich möglichst wenig Anforderungen an die Benutzer meines Codes stellen.
Ich verstehe, dass für Software-Entwicklung, die nicht aus Steuergeldern finanziert wird, andere Lizenzen angemessener sein können.
quelle
Niemand hat dies sehr deutlich formuliert, daher denke ich, dass es sich lohnt zu sagen:
Einige der Open-Source-Lizenzen (insbesondere die GPL) sind "viral" in dem Sinne, dass bei jeder Verwendung des Codes in einem neuen Projekt das neue Projekt auf die gleiche Weise lizenziert werden muss. Außerdem kann der Code nicht (auf bestimmte Weise) mit unterschiedlich lizenziertem Code verknüpft werden.
Eine praktische Konsequenz ist:
Wenn Sie eine neue numerische Methode in C implementieren, erlaubt die Lizenz nicht, sie von einer solchen allgemeinen Software wie MATLAB oder Mathematica aufzurufen
Wenn Sie einen neuen Bildverarbeitungsalgorithmus implementieren, können Sie mit der Lizenz kein Photoshop-Plug-in daraus erstellen
und so weiter ...
Dies verhindert nicht nur die kommerzielle Wiederverwendung, sondern auch die bequeme Wiederverwendung durch andere Akademiker (wenn diese geschlossene Software verwenden). Wenn jemand auf Ihrem Code aufbaut, verhindert dies, dass sie ihre Arbeit in einem "do" weitergeben -was-du-willst-damit ".
Dies ist etwas, das Sie berücksichtigen müssen, bevor Sie die Formulierung Ihrer Lizenz abschließen.
Ich habe es so ausgedrückt, weil ich Leute getroffen habe (die mit Open Source-Lizenzen nicht sehr vertraut sind), die sich dessen nicht bewusst waren oder es aus diesem Blickwinkel nicht betrachtet haben.
(Dies ist nur eine persönliche Meinung, aber ich glaube, dass es nicht angemessen ist, solche Einschränkungen auf Arbeiten anzuwenden, die von (öffentlich finanzierten) Hochschulen stammen. Deshalb behalte ich den Code entweder bei oder gebe ihn weiter.)
quelle
Unabhängig davon, für welche Lizenz Sie sich entscheiden, sollten Sie alle Finanzierungsvereinbarungen sorgfältig prüfen, um sicherzustellen, dass keine Klauseln enthalten sind, die die Lizenzierung Ihrer Software vorschreiben oder einschränken.
Ich weiß in meinem Fall, dass viele meiner Projekte aus mehreren Finanzierungsebenen aufgebaut sind, ein bisschen hier und ein bisschen dort, und dass ich verfolge, wie ich meine Sachen von den Leuten lizenzieren darf , die das Licht anhalten und Die Maschinen laufen ziemlich komplex.
quelle
Bei großen Code-Mengen wähle ich eine der in den anderen Antworten beschriebenen Lizenzen und normalerweise die LGPL. Doch wenn auch nicht in der Regel für Software empfohlen , für kleine in sich geschlossene Skripte , dass ich an einen Kollegen entsenden kann in der Industrie habe ich oft für eine entscheiden Creative Commons - Lizenz. Dies liegt daran, dass sie für die Person, an die ich den Code sende, in der Regel klarer sind, wodurch potenzielle Missverständnisprobleme vermieden werden. Das hat in der Vergangenheit für mich gut geklappt.
quelle
Im Gegensatz zu den meisten Leuten, die hier antworten (die in akademischen und / oder öffentlichen Organisationen arbeiten), arbeite ich im kommerziellen Bereich.
Für meine Produkte ist der Code geschlossen, und dies bietet weiterhin erhebliche geschäftliche Vorteile. Es gibt aber natürlich auch andere Möglichkeiten (z. B. wie MySQL unter anderem demonstriert). Ich sehe oft den kommerziellen Lizenzansatz von LGPL + für Bibliotheken. Ich habe eine solche Bibliothek in einem kommerziellen System noch nicht verwendet, aber ich würde es nicht ausschließen (bisher habe ich solche Bibliotheken, z. B. ALGLIB, nur auf F & E-Ebene verwendet). Dies steht im Gegensatz zu einem GPL-Produkt - das ich möglicherweise intern verwende, aber niemals in einem Produkt verwende, hauptsächlich aufgrund der viralen Natur.
Wenn ich Quellcode freigebe (Anleitungen, kostenlose Programme usw.), verwende ich normalerweise die Berkeley-Lizenz. Dies scheint viel mehr im Sinne von "freiem" Code zu sein, mit Zuschreibung, aber ohne die GPL-Bedingungen und Politik. Vielleicht ist dies der Grund, warum es (oder ähnliche Lizenzen wie die MIT-Lizenz) bei Universitäten und öffentlichen Organisationen so beliebt ist. Der Quellcode wird in der wahren Bedeutung von "frei" weitergegeben (hier ist ein Code, machen Sie, was Sie wollen), aber der Autor erhält immer noch Kredit / Zuschreibung.
quelle
Dies ist eine alte Frage, aber ich denke, die Mozilla Public License ist erwähnenswert als Mittelweg zwischen zulässigen Lizenzen (BSD, MIT) und starken Copyleft-Lizenzen (GPL). MPL-Code kann verwendet und weitergegeben werden, aber der MPL-Code und etwaige Änderungen daran müssen verfügbar gemacht werden. Ein Unternehmen kann beispielsweise MPL-Code verwenden, eigene Verbesserungen vornehmen und ihn in einem proprietären Closed-Source-Softwarepaket vertreiben, sofern die geänderte Version des ursprünglichen MPL-Codes verfügbar ist. Sie sind nicht verpflichtet, ihren gesamten Quellcode freizugeben, wie dies bei der GPL der Fall wäre.
Mit der BSD-Lizenz besteht die Befürchtung, dass ein Unternehmen Ihren Code übernehmen und verbessern könnte, ohne diese Beiträge an Sie oder die Community im Allgemeinen zurückzugeben, unter der Begründung, dass die Verbesserungen einen Wettbewerbsvorteil verschaffen. (Die Antwort von Matt Knepley legt nahe, dass nicht jeder so handelt). Auf der anderen Seite könnten viele Leute GPL-Code ganz vermeiden. Die MPL vermeidet diese beiden potenziellen Fallstricke zumindest im Prinzip.
quelle