Qualcuno può dare alcuni consigli / esperienze su quale licenza scegliere per il software?
La licenza che scegli dipenderà da quanto vuoi che sia libero il tuo codice, ma libero significa cose diverse per persone diverse.
- Per i sostenitori delle licenze permissive , significa gratuitamente consentire alle persone di utilizzare il software come vogliono in questo momento , senza preoccuparsi di quanto siano libere le future derivazioni.
- Per i sostenitori delle licenze di copyleft , libero significa garantire che il software e ogni sua derivazione rimangano liberi , preparandosi a sacrificare alcune libertà immediate per garantirlo.
Più una licenza è permissiva, più persone saranno in grado di usarla, ma meno controllo avrai su di essa. Quanto più restrittivo è, tanto più è probabile che tu abbia scoraggiato le persone utilizzando il tuo software in primo luogo.
Esistono numerose licenze gratuite e open source, tra cui GPL <= 2, GPL 3 , LGPL , BSD , Eclipse e così via. Ci sono pro e contro per ciascuno, quindi leggi quali restrizioni pongono sul codice e decidi chi vuoi essere in grado di usarlo. Attenzione , qualunque cosa tu scelga qualcuno si lamenterà - questo è il territorio della guerra santa .
Nel complesso è un sottile bilanciamento e dipende molto dal pubblico di destinazione del tuo software.
A mio avviso, entrambe le licenze permissive e copyleft sono appropriate per il codice scientifico - l'importante è che il codice sia in primo luogo open source. Credo che la scienza dovrebbe essere aperta, e così dovrebbe essere usato il codice per supportare tale scienza.
Quali sono i pro / contro di "regalare" tutto il lavoro in codice come codici open source?
L'idea di regalare il tuo software è che se gli altri lo trovano utile lo useranno.
Se lo usano, troveranno, segnaleranno e spesso correggeranno i bug, risparmiando lo sforzo di fare lo stesso.
Se gli piace e il tuo software fa quasi quello che vogliono, potrebbero migliorare il tuo software e contribuire con quei miglioramenti.
Questo è un sacco di se però.
Come trattare con attori industriali che vorrebbero beneficiare del codice di ricerca?
In primo luogo, se si desidera vietare l'uso commerciale del proprio codice, è possibile selezionare una licenza con una clausola di non riutilizzo commerciale.
In secondo luogo, se pensi che qualcuno potrebbe utilizzare il tuo software per alimentare un servizio, senza mai effettivamente distribuire il codice a nessun altro, allora potresti prendere in considerazione la GPL Affero che collega quella particolare scappatoia copyleft.
In terzo luogo, puoi fare quanto sopra e offrire una doppia licenza. Offrire licenze GPL o AGPL per il download pubblico e licenze commerciali a pagamento ti offre il meglio di entrambi i mondi e significa che potresti persino essere in grado di generare entrate dalle vendite commerciali del tuo software che possono aiutarti a supportare le tue attività scientifiche.
Nota, se hai intenzione di farlo, offrilo fin dall'inizio - è probabile che causi meno attrito dai tuoi collaboratori open source rispetto a iniziare a offrire licenze commerciali in seguito. Se la tua comunità diventa popolare, non vuoi che le persone ti accusino di svendersi se non avessi la possibilità di sfruttamento commerciale in seguito. Idealmente, dovresti impostare un Accordo di licenza per collaboratori (CLA) adatto prima di iniziare ad accettare contributi di terze parti nel tuo codebase.
Questa risposta a questa domanda fornisce anche alcune buone informazioni su questa opzione.