Ragioni per NON open source codice no profit? [chiuso]


34

Sono un grande fan del codice open source. Penso di aver compreso la maggior parte dei vantaggi dell'andare all'open source. Sono un ricercatore di studenti di scienze e devo lavorare con una quantità piuttosto sorprendente di software e codice che non è open source (o è proprietario o non è pubblico). Non riesco davvero a vedere una buona ragione per questo, e posso vedere che il codice e le persone che lo usano trarrebbero sicuramente beneficio dall'essere più pubblico (se non altro, nella scienza è vitale che i tuoi risultati possano essere replicati se necessario, e questo è molto più difficile se gli altri non hanno accesso al tuo codice).

Prima di uscire e iniziare il proselitismo, voglio sapere: ci sono buoni argomenti per non rilasciare pubblicamente il codice no profit e con una licenza conforme a OSI?

(Mi rendo conto che ci sono alcune domande simili in giro, ma la maggior parte si concentra su situazioni in cui il codice viene utilizzato principalmente per fare soldi, e non potrei essere molto pertinente nelle risposte.)

Chiarimento: per "no profit", includo motivi di profitto a valle, come il riconoscimento del marchio della società madre e le aspettative di profitto degli investitori. In altre parole, la domanda riguarda solo i software per i quali NON esiste alcun motivo di profitto legato al software.


+1 come trovo io stesso una domanda interessante. Ma mi chiedo se questo è il posto giusto per chiedere questo. Forse otterresti prospettive diverse da altri siti SE, come il sito PM.SE. Solo un suggerimento.
Hayylem,

@haylem, non avevo visto PM.SE, ma sembra che sia più per gli aspetti tecnici della gestione del progetto?
naught101

Manterrai attivamente il progetto in seguito o è un cimitero di codice. In altre parole, qual è il futuro del progetto.

@ ThorbjørnRavnAndersen: sì, sto assumendo la manutenzione attiva, lo sviluppo e l'uso del codice.
naught101

Risposte:


28

È necessario tenere conto del fatto che l'apertura del codice potrebbe richiedere uno sforzo aggiuntivo.

Ad esempio, in questo post di blog l'ingegnere Sun / Oracle descrive gli sforzi che hanno dovuto intraprendere per l'approvvigionamento del codice: Open Source o Dirty Laundry?

Mentre ci prepariamo ad immergerci nel mondo open source, una delle tante attività che si svolgono è la preparazione del codice per essere open source. Ci sono alcune cose ovvie che devono essere fatte. Ad esempio, il nostro codice sorgente include una combinazione di codice che abbiamo scritto e codice che abbiamo concesso in licenza da altri. Dovremo separare quest'ultimo e l'open source solo le parti di codice appropriate.

Un'altra attività di preparazione è "scrubbing" del codice di informazioni proprietarie, menzioni di particolari clienti, sviluppatori, tecnologie ecc. Questo è un po 'meno ovvio, ma si consideri il seguente esempio:

/\*
 \* 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.
 \*/

Mentre tutto quanto sopra potrebbe essere vero, probabilmente abbiamo una relazione di qualche tipo con Intertrode Tech e avere commenti come questo nel codice potrebbe danneggiare la nostra attività in qualche modo e quindi dovrebbe essere rimosso. Probabilmente non avrebbe dovuto essere lì in primo luogo, ma ora è il momento di tirarlo fuori.

Un'altra parte dell'attività "scrubbing" è quella di rimuovere volgarità e altre parole "indesiderabili" ...

Si noti che tutte le modifiche di cui sopra hanno dovuto essere apportate al codice che è stato considerato perfettamente OK come sorgente chiusa, il che lo rende un ulteriore sforzo per così dire.


2
Bene, questo vale per le grandi aziende con una base di codice esistente, tanto meno per il codice che è scritto per essere Open Source da zero.
Konrad Rudolph,

1
@KonradRudolph OP ha menzionato che devo lavorare con ... codice che non è open source (o è proprietario o non è pubblico), il che significa che non è stato lì da zero
moscerino

Non è successa la stessa cosa con DOOM 3? Il rilascio del brevetto
ritarda il

11

Sicurezza.

Ad esempio, supponi di creare un framework Web e di utilizzarlo tu stesso.

Come progetto senza fini di lucro, non hai avuto il tempo di dedicare all'ispezione di ogni bit di codice per la vulnerabilità a un attacco o a un altro:

  • CSRF
  • XSS
  • SQL Injection
  • Fissazione della sessione
  • Utilizzo di librerie di terze parti difettose o addirittura di lingue

Ora, avendo aperto il progetto, permetti agli occhi amichevoli di contribuire, ma permetti anche agli occhi maliziosi una visione completa del tuo lavoro e, se trovano un server che esegue il tuo codice, hai eliminato la tua capacità di nascondere il tuo imperfezioni nell'oscurità.

Naturalmente, questo potrebbe non essere applicabile al tipo di software su cui stai lavorando; e come sempre l' oscurità non è una scusa per la pigrizia nella sicurezza.

Tuttavia, proprio come ho riscontrato nei due livelli che ho superato in Stripe, cattura il gioco della bandiera , sapendo che il codice è il modo più semplice per trovare le vulnerabilità (e talvolta può essere l'unico modo).


7
Questo dibattito dura da secoli e la mia impressione è che l'open source sia migliore per la sicurezza, ma solo se il progetto è abbastanza popolare (almeno tra gli sviluppatori). È strano che non ci sia un buon riassorbimento degli argomenti in qualsiasi parte della rete (che posso trovare, comunque).
naught101

1
In combinazione con il commento di nought101 ha molto senso. Se per meno persone si preoccupano della tua fonte e stai usando in produzione, è molto probabile che qualcuno "malvagio" lo ispezionerà e lo userà contro di te (alla fine)
schlingel,

1
Sicurezza attraverso l'oscurità?
Danubian Sailor,

3
@lechlukasz Hai persino letto l'intero post?
Nicole,

1
@Oleksi Grazie, ma lo so. Ho detto "l'oscurità non è una scusa per la pigrizia nella sicurezza". Questa domanda non riguarda l'apertura o la chiusura, si tratta di aprire un sistema precedentemente chiuso. Mi capita di essere completamente d'accordo con il link che hai pubblicato, ma gli sviluppatori non sono perfetti e quando apri un sistema open source c'è la possibilità che i primi occhi per trovare un bug lo sfruttino invece di risolverlo per te.
Nicole,

10

Un buon motivo per non open source è che parte della tua fonte potrebbe essere protetta da copyright. Quante volte non cerchi nel web una soluzione rapida a un problema e prendi semplicemente lo snippet di codice che trovi?

Bene, quelli potrebbero essere protetti da copyright e non so se l'autore vorrebbe trovare il suo codice in licenza con una licenza diversa.


1
+1 per copyright. Volevo solo aggiungere anche i brevetti. Potresti scoprire che il tuo progetto open source sta violando alcune delle migliaia e migliaia di brevetti software abitati dal "corpo". Streaming video? Brevettato. Annunci pay-per-click? Brevettato. Solo alcuni esempi. Tuttavia, è probabile che il "corpo" non se ne frega, a meno che tu non sia un concorrente.
Amadeus Hein,

1
Hehe. Questo non è in realtà un argomento contro l'open source, ma contro la pirateria. Ma hai ragione, scommetto che questo è un problema in molti grandi codici privati.
naught101

1
@ naught101 D'accordo. L'open source espone solo il problema. Chiuso proprietario in questo caso è una questione di non farsi prendere;)
Andres F.

Quindi stai dicendo che un motivo per tenere chiusa la fonte è quello di permetterti di nascondere violazioni casuali del copyright? Non pensi che sia una ragione piuttosto non etica da usare?
Mark Booth,

1
Non etico .... forse, un'ottima ragione per non open source, certamente.
Pieter B,

6

È necessario prestare attenzione a come si sceglie la licenza per evitare potenziali problemi di responsabilità.

Un avvocato può essere una persona migliore con cui parlare di questo, ma l'idea generale è cosa succede se qualcuno usa (o abusa) l'applicazione e causa qualche danno? Sei responsabile? Ovviamente questo dipenderà dal tipo di software che stai scrivendo, ma devi sempre fare attenzione a ciò che la tua licenza dice sulla tua responsabilità. Questa può essere una cosa difficile da ottenere, quindi potrebbe essere più semplice non rilasciare il codice sorgente.


1
Sì, questo è un buon punto e la maggior parte delle licenze del sistema operativo di solito ha del testo che copre il culo da qualche parte. Immagino stavo assumendo una licenza di tipo "nessuna responsabilità accettata".
naught101

4

Attenzione: non sono un avvocato .

Bene, se non ha scopo di lucro e la sua proprietà intellettuale è fortemente legata al codice del software, alcuni potrebbero voler proteggerlo dal riutilizzo commerciale o addirittura sfruttato in modo abusivo per creare copie carbone del proprio software.

Alcuni altri motivi - che sono probabilmente profondamente radicati nel primo, in realtà - sono che nel tuo caso gran parte della ricerca di alto livello avviene con finanziamenti privati ​​e di solito gli investitori vogliono vedere il ROI. E finora, nessuno degli attori dell'industria del software (o dei nuovi arrivati) è stato completamente persuaso della fattibilità del modello open source (molto probabilmente per mancanza di conoscenza e comprensione delle licenze, o semplicemente per paura che le licenze non impediscano i malware usi e copie).

Inoltre, queste aziende non vogliono essere citate in giudizio da coloro che hanno tentato di ottenere profitti sulle loro spalle e le licenze sono viste come una protezione anche a questo proposito, con buone ragioni o no.

Potrebbe non sembrare così, ma forse le organizzazioni senza fini di lucro SONO redditizie per i loro fondatori o investitori. I vantaggi non sono diretti. Quindi hanno un grande interesse nel fatto che gli NFP stiano andando forte e non siano battuti al limite dai concorrenti (anche se spesso non penseresti spesso ai "concorrenti" nel mercato no profit) e vogliono preservare il loro IP, anche se è a costo di non ottenere più bulbi oculari gratuiti per rivedere il loro codice per trovare problemi e migliorarlo in anticipo.

Si noti inoltre che le leggi sul copyright differiscono da paese a paese. Molti paesi europei considerano le leggi statunitensi sul copyright e il sistema dei brevetti statunitensi piuttosto confusi, per esempio, quindi c'è un background culturale e un peso che è difficile scrollarsi di dosso.

Jut i miei 2 centesimi sull'argomento.

(Ho lavorato molto con le università e recentemente in bioinformatica e sanità ... È una domanda ricorrente per me e i miei colleghi :))


Hrm .. Stavo prendendo in considerazione il codice e l'IP insieme nella mia domanda. Forse avrei dovuto renderlo più chiaro. Penserei al ROI e alle considerazioni sul marchio come a motivi di profitto ... (Mi rendo conto che la "scienza" era un po 'vaga e che molta scienza è redditizia - il mio campo (sicuramente le scienze del sistema terrestre non lo sono).
nulla101

Chiarita la domanda. Ci scusiamo per il fastidio.
naught101

Considererei il tuo campo redditizio. Potrebbe non avere un ampio mercato, ma non significa che non sia redditizio. In effetti, lo considero un investimento piuttosto ingente. Perché ti senti diversamente?
haylem,

Sono nella modellistica climatica. Nessuno paga per i modelli climatici. Nessuno paga per usare i modelli climatici. Non ci sono profitti da utilizzare il software. Le persone vengono pagate per fare ricerche usando quei modelli (e questo spesso include la scrittura dei modelli), e talvolta il tempo di calcolo viene pagato, ma entrambi significano che condividere il codice renderebbe le cose più economiche (più tempo da dedicare alla ricerca invece di scrivere codice , meno tempo perso nelle strutture HPC). Non vedo davvero come il software sia correlato ad alcuna redditività.
naught101

1
@psr: Penso che questo sia il punto nullo101: ci sono risultati redditizi sui risultati degli usi del modello, ma non necessariamente si fanno molti soldi nella vendita di software che implementano il modello. Sorprende anche me, ma potrebbe benissimo esserlo.
Hayylem,

1

Esistono almeno due diversi tipi di open source.

Se il tuo atteggiamento è "ecco qualcosa di utile, ho finito con esso" (e questo risulta essere accurato), allora c'è poco svantaggio.

D'altra parte, se il tuo atteggiamento è "Sono davvero entusiasta e voglio che alcuni utenti reali aiutino a guidare lo sviluppo futuro", pensa attentamente. Dovrai dedicare tempo a supportare gli utenti, molti dei quali sono all'oscuro. Dovrai prendere in considerazione richieste contrastanti per funzionalità e miglioramenti. Sarà sempre più difficile apportare modifiche per preservare la compatibilità con le versioni precedenti.


3
Non vedo davvero come il rilascio del codice obbliga chiunque a fornire supporto? E almeno in campo scientifico, la maggior parte degli utenti è piuttosto informata, almeno sul processo, se non sul codice stesso.
nulla101

1
@ naught101: obbliga No, ma se qualcuno usa il tuo codice, si dovrà ottenere e-mail, domande, suggerimenti ... che avrà un certo sforzo da gestire, a meno che non è sufficiente scegliere di ignorarli. Al di fuori della scienza, molti utenti non sono troppo informati, quindi potresti trovarti ad aiutare le persone con problemi di configurazione elementari ecc. Semplicemente perché ti è capitato di rilasciare del codice. L'ho provato almeno. Anche le dichiarazioni di non responsabilità in stile BSD "fornite così come sono" ecc. Non dovrebbero - e non dovrebbero - impedire alle persone di chiedere aiuto.
Joonas Pulakka,

1
È stato votato perché questa risposta non è affatto meno applicabile di molte altre. @JoonasPulakka: ovviamente non dovrebbe impedire alle persone di chiedere aiuto. Ma dovrebbe impedirgli di aspettarsi una risposta. Inoltre, se hai il software vero e proprio in pubblico, allora presumibilmente hai la stessa responsabilità nei confronti degli utenti indipendentemente dal fatto che il tuo codice sia pubblico (a seconda dell'EULA, forse). Forse dovresti aspettarti più domande dagli sviluppatori se rilasci il codice, ma sarebbe bello pensare che la maggior parte di loro avrà un po 'di indizio e potrebbe ripagare alcuni consigli una patch o due ..
naught101
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.