Domanda:
È etico utilizzare software proprietario (closed-source) per il calcolo scientifico?
Deja
2016-12-01 03:27:49 UTC
view on stackexchange narkive permalink

Ho i dati di un normale esperimento scientifico. Ora, per analizzare i dati, il modo più conveniente per me è utilizzare un software proprietario e closed-source.

È etico utilizzare questo tipo di software nella ricerca?

Se lo usi, questa parte sarà una grande scatola nera nella mia ricerca. Quindi, se qualcuno non è in grado di riprodurre la mia analisi dei dati con lo stesso o con qualche altro software, dipende dalla misericordia della società di software se possiamo scoprire cosa è andato storto. Se la società di software non vuole collaborare, allora ciò che è andato storto potrebbe non essere mai scoperto. Ho la sensazione che ciò si opponga ai principi della scienza.

Ti riferisci a software disponibile in commercio? Gli algoritmi stessi sono proprietari o solo il software che li implementa?
Se i metodi sono documentati in modo riproducibile (oppure il software è il gold standard e tutti lo usano, credendo che sia il metro di misura usato sul campo), probabilmente va bene. Potresti, ad esempio, avere un software che fa qualcosa "magicamente", in un modo non documentato, ma dove è facile controllare come sta andando (ad esempio riconoscimento delle immagini, allineamento, ecc.). Più dettagli?
Vedere [Programma proprietario popolare o oscuro sostituto open source per la ricerca riproducibile?] (Http://academia.stackexchange.com/questions/2381/popular-proprietary-program-or-obscure-open-source-substitute-for-reproducible- r)
Questo è assolutamente standard in alcuni campi, ad es. ingegneria meccanica in cui il software proprietario "gold standard" è il risultato di centinaia di anni persona di sforzi di sviluppo. Se si fa riferimento alla versione esatta del software in esecuzione, è accettabile quanto qualsiasi altro riferimento in un IMO cartaceo. Anche se utilizzi software open source, non vi è alcuna garanzia che * chiunque * possa rintracciare un bug retrospettivamente, a meno che tu non documenti e conservi * assolutamente tutto * nella catena di strumenti che hai usato per costruire la tua versione - non solo "il sorgente dell'applicazione codice".
Ebbene, lo stesso vale praticamente per ogni strumento utilizzato nella ricerca.
Un'interpretazione letterale di ciò renderebbe immorale fare calcoli per le pubblicazioni utilizzando Excel, per non parlare di Stata o SAS. Non mi interesserebbe stimare la penetrazione di R e Python nel mondo accademico, ma sono ancora abbastanza certo che questo squalificherebbe la maggior parte della ricerca pubblicata negli ultimi 20 o 30 anni.
Correlati: [È accettabile utilizzare Mathematica per ottenere risultati nella tua ricerca?] (Http://academia.stackexchange.com/q/71536/11907). Penso che quello che ho scritto nella mia risposta qui si applichi principalmente anche qui.
Potresti dire lo stesso di qualsiasi dispositivo hardware che usi, specialmente se contiene un microcontrollore (che fa quasi tutto ciò che è elettronico). Non hai idea di cosa stia effettivamente facendo quell'hardware.
@David: Interessante da vedere, delle risposte seguenti, quale di loro il loro argomento (se accettato) andrebbe avanti per dimostrare che non è etico utilizzare uno strumento brevettato (farmaco, attrezzatura di laboratorio, hardware del computer, cacciavite, matita, ecc.) In un esperimento :-) Questo separa "non riproducibile perché oscuro" da "non riproducibile perché dipendente dal consenso del proprietario dell'IP".
votare a favore di @DSVA per aver ricordato che, se si compila dal codice sorgente, è necessario documentare *** ogni *** pezzo di software che si utilizza per farlo: quale versione di `make`, quale compilatore e quale versione, ecc. ecc. nei progetti sotware fatti correttamente, mettiamo gli strumenti, così come il codice sorgente, sotto il controllo della versione
@Mawg non è solo il software, anche l'hardware. Voglio dire, come chimico, userei un termometro elettronico disponibile in commercio. Se avessi bisogno di costruire il mio "open source" non arriverei da nessuna parte.:-D
Lolx! Ma, presumibilmente, esiste un h / w accettato, che ha dimostrato di essere adeguatamente calibrato e testato in modo indipendente? Ti metteresti nei guai solo se usassi un h / w "senza nome"?
Dodici risposte:
CrepusculeWithNellie
2016-12-01 06:04:15 UTC
view on stackexchange narkive permalink

Non credo che questa sia una questione etica in primo luogo. La riproducibilità non è pregiudicata dalla necessità di spendere denaro per l'acquisto di software o per la creazione di un esperimento (o esistono acceleratori di particelle open source?).

Sebbene le soluzioni open source siano preferibili per molte ragioni, ci sono chiaramente casi in cui l'uso di un software proprietario P è appropriato:

  • Quando è noto (ed è stato verificato) che l'implementazione del metodo M di P è corretta mentre le implementazioni open source note di M non sono (ancora) stati accertati come affidabili. Al contrario, quando l'implementazione open source O è nota per dare risultati corretti mentre per P questo non è stato stabilito, allora chiaramente O dovrebbe essere usato quando c'è una scelta.
  • Quando ci si può ragionevolmente aspettare che P sia ampiamente disponibile negli istituti di ricerca (e quindi ai ricercatori), come ad esempio alcuni pacchetti matematici / computazionali.
  • Quando P consente un'esecuzione degli esperimenti molto più efficiente (tempo / risorse).
  • Quando P è un pacchetto software necessario comunque per estrarre / elaborare dati da uno strumento big-ticket.

Nota che presumo che P possa essere effettivamente acquistato da chiunque. Se P non è disponibile in commercio ma piuttosto una soluzione interna closed-source, è preferibile un pacchetto open-source.

+1. La riproduzione di un risultato potrebbe richiedere la scrittura di software da zero, altrimenti dovremmo preoccuparci che la nostra ricerca diventi non valida perché parte del codice utilizzato non viene più compilato sui sistemi moderni. Inoltre, la maggior parte delle volte, il software utilizzato per la scoperta di risultati scientifici non è effettivamente necessario per la loro riproduzione (ad esempio, questo accade sempre in matematica).
La domanda non dice nulla sul denaro. Si tratta di open source vs closed source, non gratuito vs non gratuito.
Sicuramente ha molto a che fare anche con i soldi. A volte non ci si può permettere di acquistare una licenza. Sarebbe accettabile rubarne uno?
"o esistono acceleratori di particelle open source?" Ebbene, il CERN ha spinto per l'hardware aperto almeno dal 2011 ... Tieni presente: open-source * non * significa "gratuito". L'unica differenza è la possibilità di controllare come la "cosa" (software / hardware) è stata progettata e costruita, non quanto si paga per essa. Allo stesso modo nulla ti impedisce di scrivere un'applicazione closed-source e di fornirla gratuitamente.
@DimaPasechnik: Parafrasando un ex supervisore: "la necessità di pagare per una licenza non è un argomento * scientifico *" - qui stai pagando per uno strumento. Se non puoi permetterti di acquistare un cacciavite, sarebbe accettabile rubarne uno?
@cbeleites - è accettabile rubare il cibo se stai morendo di fame?
@DimaPasechnik La moralità è relativa; la ricerca scientifica presume che i primi pochi livelli della Gerarchia di Maslow siano soddisfatti.
@DavidKetcheson Non capisco il tuo argomento. Non sono a conoscenza di pacchetti software closed-source ma free-as-in-beer per calcoli scientifici con alcun tipo di trazione diffusa. Forse puoi fornire esempi specifici? Altrimenti, la distinzione che poni è del tutto inutile.
@NReilingh, ecco un esempio più pertinente: è accettabile infrangere una regola ingiusta per fare ricerca scientifica? Esempi: https://en.wikipedia.org/wiki/Victor_Ginzburg racconta come ha rivendicato la recinzione per evitare che le guardie impedissero l'accesso non autorizzato all'edificio dell'università statale di Mosca, dove I.Gelfand ha tenuto i suoi seminari. Https: // en. wikipedia.org/wiki/Aaron_Swartz - era davvero un eroe?
Gli acceleratori di particelle e i rilevatori del CERN sono completamente descritti nei documenti pubblicati (ei file CAD sono probabilmente online) nella misura in cui potresti, dato il budget, ricostruire una macchina simile, quindi abbastanza vicino a un modello software open source. Il software proprietario non pubblica il design interno né consente legalmente di copiarlo.
+1. Aggiungerei semplicemente un punto elenco (o riformulare il primo): ** quando ci si aspetta che un'implementazione indipendente del metodo M in un software diverso dia risultati identici **. Usare P potrebbe non essere solo perché P è l'unico software in grado di svolgere il lavoro, può essere che * è l'unico con cui gli autori hanno familiarità * o è il migliore disponibile e supportato nella * loro istituzione * e riprogetta l'analisi in un altro sarebbe * una perdita di tempo * quando non ci sono aspettative i risultati dovrebbero cambiare in questo modo.
Lo vedo sempre con Mathematica e Matlab che hanno entrambi * un sacco * di alternative gratuite, ma a volte sono più difficili da installare, meno documentate o semplicemente meno conosciute per iniziare.
-1 per due ragioni: 1. La riproducibilità è danneggiata dalla necessità di pagare per qualsiasi cosa; e se sono molti soldi, allora è un grave danno alla riproducibilità. 2. Non si tratta solo di pagare, si tratta di doverti vincolare dalla licenza del fornitore del software e promuovere l'uso di tale software.
David Ketcheson
2016-12-01 11:42:22 UTC
view on stackexchange narkive permalink

Questa domanda è diventata importante man mano che cresce la spinta per una maggiore riproducibilità nella ricerca computazionale. L'uso di software closed-source è una parte accettabile della ricerca nella maggior parte dei campi, tuttavia, il seguente punto di vista enunciato da John Claerbout sta diventando sempre più diffuso:

Un articolo su un risultato computazionale è la pubblicità, non la borsa di studio. La borsa di studio effettiva è l'ambiente software completo, codice e dati, che ha prodotto il risultato.

Da questo punto di vista, se ti affidi a codice closed-source, non puoi pubblicare completamente la tua ricerca.

Problemi con il software closed source nella scienza

Ci sono più preoccupazioni:

  • Come hai detto, se qualcun altro cerca di riprodurre il tuo risultato e ottiene una risposta diversa , potrebbe essere impossibile risolvere la discrepanza.
  • L'implementazione del software potrebbe contenere bug . In effetti, tutto il software ha bug e qualsiasi software open source che utilizzi sarà suscettibile anche a questo. Ma con il software closed source non hai il diritto di ispezionare il codice per trovare bug da solo, né puoi risolverli da solo se li scopri.

Entrambe queste cose sono questioni di principio; in pratica, la risoluzione delle discrepanze e la ricerca / correzione di bug rilevanti è anche una sfida importante con il software open source (ma è almeno qualcosa che puoi plausibilmente fare).

Suggerimenti per mitigare il impatto del codice closed-source sulla riproducibilità

  1. Pubblica tutto il tuo codice . Probabilmente hai alcuni script che chiamano il software proprietario, o almeno alcuni file di input che impostano il problema da risolvere. Di solito, questi script contengono la maggior parte delle novità nella tua ricerca, quindi ciò che è in essi è spesso più importante per gli altri ricercatori di ciò che è nel sorgente proprietario.

  2. Utilizza più approcci indipendenti per confermare i tuoi risultati . Ciò riduce la probabilità che un bug influisca sui risultati. Nella mia ricerca, questo lavoro extra a volte è stato ripagato scoprendo bug (che portavano a risultati errati) nel software proprietario.

  3. Comprendere gli algoritmi codificati nel software e i loro punti deboli . Anche se non puoi vedere la fonte, di solito puoi imparare quali metodi di calcolo contengono. Una volta che conosci le circostanze in cui questi metodi sono (o non sono) affidabili, puoi verificare se è probabile che forniscano risultati affidabili per il tuo problema (ad esempio, controllando il numero di condizione di una matrice che inserisci in qualche software di algebra lineare ).

  4. Tieni presente che alcuni software commerciali sono solo un'interfaccia carina per il codice open-source . Ad esempio, la funzione eigs di MATLAB per calcolare gli autovalori di matrici sparse è solo un sottile involucro attorno al pacchetto open source ARPACK. Se lo usi, in realtà non fai affidamento su molto (se esiste) codice closed-source.

Ovviamente, dovresti anche seguire le migliori pratiche delineate nella letteratura (ad esempio, in questo articolo o nei numerosi riferimenti collegati qui) sulla scienza computazionale riproducibile.

Si potrebbe notare che in pratica è anche fondamentalmente impossibile fornire un ambiente * completo * che consenta di replicare i risultati computazionali. Usare software open-source compilato con strumenti open-source ed eseguirlo su un sistema operativo open-source è un ottimo inizio, ovviamente, ma di solito non puoi andare oltre. Esistono CPU open source / open hardware, ad esempio? Cosa succede se qualcuno non riesce a riprodurre un risultato perché la sua CPU esegue un'approssimazione diversa a un certo punto? (No, non ho mai sentito parlare di un caso del genere, ma non è davvero inimmaginabile ...) "Mitigare l'impatto" è davvero la chiave.
@T.Verron C'è del lavoro anche su questo problema (riproducibilità bit per bit). Ma per la maggior parte delle applicazioni non è utile.
"La vera borsa di studio è l'ambiente software completo, codice e dati, che ha prodotto il risultato". Ma non lo è. La borsa di studio è solo nel * codice e dati * - l'algoritmo e gli input e gli output di quell'algoritmo. L'ambiente software è puramente un mezzo meccanico per eseguire quell'algoritmo. Che tu usi Mathematica, Matlab, Octave o un motore Babbage, tutto ciò che conta è eseguire l'algoritmo. Potrebbero esserci problemi pratici relativi alla facilità di revisione e riproducibilità, ma ciò non influisce su ciò che conta come borsa di studio.
@T.Verron Alcuni chip Intel Pentium notoriamente [avevano un bug] (https://en.wikipedia.org/wiki/Pentium_FDIV_bug) e talvolta producevano cattivi risultati negli anni '90: ogni tanto eseguivano la divisione in virgola mobile in modo errato . Il problema è stato effettivamente scoperto da un professore che lavora sui numeri primi.
Nota che un'altra cosa importante da pubblicare, che le persone spesso dimenticano, è il ** seme del tuo generatore di numeri pseudocasuali **. Ancora meglio, lo script che esegue gli esperimenti dovrebbe sempre reimpostarlo a 0.
@T.Verron: Sì, esiste un hardware open-source, ma non è molto pratico. (ad esempio [implementazioni aperte dell'architettura RISC-V] (http://makezine.com/2016/11/30/open-v-worlds-first-risc-v-based-open-source-microcontroller/).) Di solito ci fidiamo solo delle implementazioni x86 (o altro hardware). L'architettura x86 è molto ben documentata da Intel, con i manuali di architettura disponibili come PDF gratuiti (vedere [wiki tag x86 di SO] (http://stackoverflow.com/tags/x86/info)).
Siamo in balia di bug di progettazione hardware e di errori di bit dovuti a un raffreddamento inadeguato (ad esempio CPU overcloccata), ma eseguire lo stesso codice su diversi progetti hardware può aiutare a verificare le cose. (ad esempio AMD vs Intel, o soprattutto un ISA diverso come PowerPC o ARM). La matematica in virgola mobile IEEE è esattamente specificata per + - * / e sqrt, quindi un'attenta implementazione della libreria dovrebbe essere in grado di ottenere risultati identici al bit anche per altre funzioni come pow, log e sin su architetture diverse. (Ma [il determinismo FP è difficile] (https://randomascii.wordpress.com/2013/07/16/floating-point-determinism/))
@DavidKetcheson e T.Verron: Ho appena pubblicato una risposta a [Qualche codice a virgola mobile produce risultati esatti in bit in qualsiasi architettura basata su x86?] (Http://stackoverflow.com/questions/27149894/does-any- floating-point-intensive-code-produce-bit-exact-results-in-any-x86-base) che avevo iniziato qualche tempo fa, ma non finito fino a quando questa discussione non me lo ha ricordato. TL: DR: Con gli strumenti giusti, la matematica FP riproducibile bit per bit è possibile sull'hardware dei computer moderni. Ma il C di solito * non * è lo strumento giusto per quel lavoro, a meno che non ti attacchi a un compilatore e una libreria matematica.
Dmitry Savostyanov
2016-12-01 04:09:03 UTC
view on stackexchange narkive permalink

La legge si occupa di ciò che fai; l'etica riguarda più cosa è una scelta migliore e perché è migliore. La risposta alla tua domanda dipende dal perché utilizzi il software proprietario.

  • Se questo è l'unico modo per ottenere il risultato, allora ovviamente puoi e dovresti usare esso. Non importa se il codice è proprietario: se questo è l'unico modo per risolvere il problema, allora tutti possono usarlo o cercare di usarlo. Tuttavia, non sono sicuro che esista un tale software, quindi forse questo è un esempio di modello.
  • Se puoi scegliere tra un software proprietario W e un software open source gratuito L, la scelta è tua rendere. Se i tuoi metodi sono ben documentati, i tuoi colleghi possono riprodurli in W (se ce l'hanno) o ricreare un algoritmo nel software L (questo accade spesso). Ci sono alcuni vantaggi nell'usare W e altri nell'usare L. Per gli accademici come una grande comunità sarebbe meglio se tutti usassero lo stesso software open-source e contribuissero al suo sviluppo. Tuttavia, i tuoi obiettivi personali possono essere diversi e non è immorale metterli al primo posto. Puoi scegliere W perché è un software scritto meglio, funziona più velocemente, ha un aspetto migliore e sei più produttivo con esso. Va bene.
  • Tuttavia, se hai scelto W perché sei pagato da un'azienda M che lo produce, e non lo dici, ma invece pubblicizzi W sui tuoi giornali e incoraggia tutti a comprarlo , allora sì, non è etico.
  • Se scegli W perché sai che i tuoi concorrenti, che probabilmente rivederanno il tuo articolo, provengono da un paese del terzo mondo senza accesso a W, e non Mi piace particolarmente W, ma usalo per nascondere del vudù statistico sporco nel codice che nessuno può riprodurre - sì, questo non è etico.
Un esempio del caso n. 1 è che, in fisica, usiamo Mathematica per fare molti calcoli perché è di gran lunga il sistema di computer algebra più capace disponibile. Alcuni di questi calcoli non possono essere eseguiti da nessun altro software (disponibile pubblicamente). Anche se non è un esempio perfetto perché, in linea di principio, è possibile riprodurre i risultati a mano, ma ciò potrebbe richiedere anni di lavoro per qualcosa che Mathematica può fare in pochi minuti.
@DavidZ: Ma Mathematica è pieno di bug privi di senso dovuti a programmatori incompetenti che non sanno praticamente nulla della matematica dietro ciò che tentano di implementare. E gli scienziati ci fanno davvero affidamento?
@user21820 Certo, ma anche la migliore letteratura scientifica contiene errori, e fare il calcolo a mano è soggetto a errori, quindi è alla pari con quel pericolo.
Dmitry Grigoryev
2016-12-01 17:54:21 UTC
view on stackexchange narkive permalink

Nota che "Proprietario" e "Sorgente chiuso" non sono la stessa cosa. Ad esempio, MATLAB (un software commerciale proprietario) viene effettivamente fornito con codice leggibile per la maggior parte delle funzioni che implementa. Non sei autorizzato a riutilizzare questo codice (da qui "closed source"), ma puoi ispezionarlo se hai discrepanze di calcolo che devono essere spiegate.

Anche quando il codice sorgente non è disponibile, di solito viene documentato quale algoritmo è implementato da una data funzione closed-source. Quindi, se qualcuno non è in grado di riprodurre i tuoi risultati utilizzando software closed-source, può trovare implementazioni open-source dell'algoritmo che sospetta non siano corrette nel software che hai utilizzato e confrontare i risultati utilizzando tali implementazioni. Certo, richiede tempo, ma non aspettarti che l'utilizzo di software open source in qualche modo renderà i tuoi risultati riproducibili al 100% senza alcuno sforzo. I tuoi colleghi dovranno comunque eseguire la versione esatta del software sull'ambiente del computer esatto per essere sicuri che otterranno esattamente gli stessi risultati e tali versioni e ambienti probabilmente non saranno disponibili tra 10-20 anni. Dopodiché, lo stesso processo dispendioso in termini di tempo si applicherà anche al software open source.

Suppongo che qui non si utilizzino pacchetti software che mantengono segreti gli algoritmi utilizzati per implementarlo. Sicuramente vorrai evitare di usarli, non solo per motivi di risultati riproducibili, ma perché i risultati ottenuti con mezzi sconosciuti non hanno alcun valore scientifico.

Sfortunatamente, a meno che ciò non sia cambiato, il codice Matlab per molti degli algoritmi a cui sarebbe più importante accedere, come il toolbox delle statistiche, proviene da codice compilato in cui non è inclusa una fonte leggibile nella distribuzione.
Il termine è ["sorgente disponibile"] (http://haacked.com/archive/2006/07/26/CodeAvailableVsOpenSourceVsFreeSoftware.aspx/)
Dmitry, in molti campi non è possibile sostituire facilmente il software for-pay / restrittivo / closed-source con FOSS. Ciò è particolarmente vero quando parliamo di sistemi software più grandi e complessi, piuttosto che piccoli pezzi di software che implementano un singolo algoritmo. C'è l'enorme sforzo di sviluppare sistemi software più grandi, mantenere il debug e portarli; e c'è il fatto che gli spazi di progettazione sono così vasti che è improbabile che due sistemi non recentemente biforcati dallo stesso genitore siano abbastanza simili da essere intercambiabili.
Inoltre, la tua supposizione alla fine è generalmente falsa per i sistemi più grandi, poiché anche se pubblicano i concetti / aspetti principali, c'è solo troppa hackery specifica da documentare.
J...
2016-12-01 18:37:20 UTC
view on stackexchange narkive permalink

Aggiungerò qui un'ulteriore prospettiva: se riesci a ottenere un risultato straordinario basato sull'analisi eseguita in un pacchetto closed source per il quale non è disponibile alcuna implementazione open source o per il quale lo stesso è poco sviluppato, quindi fornisci immediatamente un forte incentivo agli sviluppatori della comunità scientifica senza accesso a quel pacchetto, ma con il desiderio di riprodurre i risultati, uscire e iniziare a lavorare sul miglioramento alternative open-source a detto software commerciale.

Questo è un duplice vantaggio. Nel primo caso, stai aiutando a incoraggiare lo sviluppo di nuovi strumenti open-source e, in secondo luogo, lo sviluppo parallelo di tali strumenti aiuta a fornire controlli reciproci per entrambi. Direi di utilizzare ciò che funziona, ciò che è più appropriato e qualsiasi cosa ti aiuti a svolgere il lavoro al meglio nei limiti del tuo budget. Se non sei in grado di contribuire con migliori strumenti open source alla comunità, lascia che gli altri prendano quella fiaccola. La produzione di risultati scientifici utili, unici e interessanti è esattamente il tipo di cosa che stimola in primo luogo quel tipo di sviluppo.

In un certo senso, l'utilizzo di un pacchetto closed source può effettivamente essere un catalizzatore per lo sviluppo open source, quindi stai ancora aiutando in modo indiretto. Se ci sono, tuttavia, alternative open source al pacchetto closed source che hai utilizzato, allora dovrebbe essere banale per altri riprodurre i tuoi risultati con le proprie implementazioni con strumenti gratuiti e non c'è, quindi, alcun problema etico. Semmai, offre l'opportunità di testare lo stesso risultato con due strumenti diversi e questo è sempre meglio, nella scienza, che riprodurre il risultato utilizzando lo stesso strumento. Puoi controllare sia gli strumenti (uno contro l'altro) che la scienza allo stesso tempo. Bonus.

Sebbene non potessi convincermi a downvote, davvero non penso "utilizzare software closed-source per incentivare il software open-source!" ha davvero senso. È come dire uscire da un incendio doloso per incentivare l'uso di rilevatori di fumo.
@WetlabWalter C'è sempre un SJW nella stanza, eh? Non sapevo che l'acquisto di software fosse criminale * o * distruttivo. In realtà, se non esiste un'alternativa open source, non ce n'è una. Quando hai un lavoro da svolgere e c'è uno strumento disponibile, lo usi. Semplice come quella. Non riesco a credere che spenderesti un milione di dollari per un esperimento e poi ti lamenteresti di pagare pochi dollari per il software per analizzare i dati. Il punto è che l'OSS si presenta quando c'è una buona scienza da fare con esso. Pollo e uova ...
lol, SJW, questo è nuovo per me. Stavo riducendo la tua argomentazione all'assurdità: il male benevolo è un errore logico comune. Ok, tutti commettiamo errori. Il tuo altro punto è strawman: la domanda non è closed-source o nessuna analisi. È closed-source o open-source. Indipendentemente da ciò, il prezzo del software non è il problema. È che è una scatola nera.
@WetlabWalter Tuttavia, una scatola nera che implementa un algoritmo noto non è completamente nera. È una comoda automazione del tedio. Non direi che il suo utilizzo è indifendibile.
Va bene, dai un voto positivo, accidenti
@WetlabWalter lol, non stavo combattendo per un voto, ma hey - lo prendo.
@WetlabWalter: "la domanda non è closed-source o nessuna analisi. È closed-source o open-source." Avrei detto che nello scenario di questa risposta la domanda è: analisi closed source o programmazione open source, e quindi analisi poiché presuppone che non esistano alternative aperte quando l'analisi inizia. E mentre ovviamente eseguire un'implementazione aperta più l'analisi dei dati è meglio che analizzare i dati, ci vorrà anche più tempo ... E a seconda del campo, la programmazione di una nuova implementazione di un algoritmo noto potrebbe non essere vista come dotata di * scientificità * meriti.
Sfortunatamente, sebbene tali risultati creino qualche incentivo a medio-lungo termine per lo sviluppo del software FOSS, creano un incentivo immediato e più forte ad acquistare / concedere in licenza il software non gratuito / chiuso / a pagamento, per non perdere nella concorrenza atmosfera di molti (più) campi.
@einpoklum Allora cosa proporresti? Aspetta finché il gruppo non riesce a trovare uno sviluppatore ... quindi aspetta 18 mesi affinché possano mettere insieme una versione alfa difettosa di qualcosa che potrebbe alla fine portare a termine il lavoro? La ricerca è come uno squalo: vai avanti o muori. Se non hai il lusso del talento o del tempo per contribuire con FOSS, devi portare a termine il lavoro con gli strumenti disponibili.
@J ...: Beh, osservare che qualcosa è più problematico / non etico di quanto altri suggeriscano non richiede di fornire un'alternativa perfettamente etica. Può benissimo essere il caso che tutte le nostre linee di condotta in alcune situazioni abbiano conseguenze indesiderabili (o addirittura deplorevoli). Nella mia risposta concludo suggerendo di valutare i pro e i contro per trovare il miglior equilibrio possibile (ma intendo _tutti_ i contro).
h22
2016-12-01 15:02:48 UTC
view on stackexchange narkive permalink

Se scrivi "i risultati sono stati elaborati con il software X v X.X utilizzando le seguenti impostazioni e l'output stampato era", questo smette di essere scienza e diventa più simile a una magia. Gli algoritmi devono essere completamente documentati da qualche parte e comprensibili affinché la ricerca sia la scienza.

È completamente possibile soddisfare questo requisito per il software proprietario, se gli algoritmi sono descritti correttamente nella documentazione dell'utente, o il software proprietario crea solo la piattaforma di esecuzione e gli algoritmi stessi sono codificati sopra di essa (Matlab, compilatore C proprietario, ecc.). Idealmente, anche il codice proprietario dovrebbe essere disponibile per la revisione con una licenza restrittiva.

Sfortunatamente molto spesso gli strumenti proprietari tendono a nascondere i dettagli esatti dell'algoritmo, a mantenere segrete le parti importanti del codice e, a causa di ciò, non piacciono la comunità scientifica. Nessuno vuole pubblicare un articolo solo per scoprire i risultati successivi sono riproducibili solo dalla singola versione del singolo strumento proprietario, molto probabilmente a causa di bug banali.

Purtroppo, in molti settori, questo è quasi l'unico tipo di carta che sia mai stato pubblicato. Architettura DB per esempio (VLDB, SIGMOD). E non sono solo i fornitori commerciali come Oracle, Microsoft, SAP e altri, anche quando le persone modificano semplicemente un DBMS FOSS il più delle volte non pubblicano il codice da nessuna parte.
La maggior parte delle pubblicazioni per me importanti integrano l'algoritmo con codice sorgente che funziona bene con GCC sotto Linux.
Bene, ok, ma non è così per tutti i domini.
Dima Pasechnik
2016-12-01 16:21:33 UTC
view on stackexchange narkive permalink

Decidi tu stesso:

posso sostenere, in base alla mia esperienza personale, che l'utilizzo di software closed-source porta a escludere un numero considerevole di potenziali ricercatori (o costringerli a ottenere copie illegali in un mercato grigio) . Ho lavorato per diversi anni in un'area in cui Matlab è uno strumento standard (lo è ancora, dopo 20 anni :-(), e poi ho accettato un postdoc in un luogo che non aveva licenze Matlab (non tutti i dipartimenti CS ce l'hanno anche nelle buone università in Germania, in quanto potrebbero non avere una licenza a livello di campus, e mentre in Engineering hanno sicuramente Matlab, è abbastanza discutibile in CS).

Fondamentalmente ho dovuto sospendere ogni corso Progetto relativo a Matlab (poiché acquistare una licenza Matlab sufficientemente completa con uno stipendio postdoc non era un'opzione ...)

(E una volta ho praticamente rubato una licenza Mathematica in un dipartimento che stavo visitando, per il stessa ragione. :-))

Un altro caso, ancora più difficile, è Magma (meno noto di Matlab, ma ancora quasi standard nelle aree relative alla teoria algebrica dei numeri, alla teoria dei gruppi e altro), il che rende estremamente difficile ottenere una licenza per chiunque al di fuori di una cerchia consolidata di università selezionate, a meno che tu non sia negli USA con il loro più grande cliente che è NSA :-)).

EDIT: Mi è stato detto che sto sostenendo il doppio standard (menzionando costosi strumenti per gli esperimenti), ma non lo sono. Il software scientifico è spesso molto vicino alle pubblicazioni scientifiche di quanto lo sia agli strumenti scientifici. Nel caso di un'alternativa gratuita a uno strumento costoso, non scegliere un'alternativa gratuita è come scegliere un editore costoso ed esclusivo per il tuo lavoro, piuttosto che pubblicare sul Web.

EDIT2: Inoltre, problemi di affidabilità dei software di ricerca closed-source sono ben documentati in letteratura; forse il più noto al momento è la storia di un bug in un calcolo determinante in Mathematica. Ci è voluta la pubblicazione in una fonte di così alto profilo come Avvisi dell'AMS per Wolfram Ic per risolverlo. Con l'open source normalmente la correzione di un tale bug avviene molto più velocemente, o almeno sarebbe pubblicamente visibile su un bug tracker.

Questo non è più vero per il software closed source di quanto non lo sia per altri costosi strumenti scientifici. Nessuno sosterrà che c'è un problema etico nell'usare un microscopio confocale, un sequenziatore nextgen o un acceleratore di particelle. Allora perché applicare il doppio standard al software per computer?
@JackAidley: no, nel caso tu citi semplicemente non c'è alternativa. Nel caso del software spesso c'è: proprio come nel caso dell'editoria - puoi pubblicare il tuo libro con un editore commerciale che lo farebbe pagare $ $, oppure puoi metterlo gratuitamente online (o fare entrambe le cose). La scelta è tua.
Mentre molti potrebbero discutere sul fatto che l'uso del codice sorgente chiuso sia "etico" (io non lo faccio), violare gli accordi di licenza e utilizzare software rubato è spesso illegale e va oltre i miei confini etici.
@JackAidley - non potrebbe essere più d'accordo.
Nota, inoltre, che ci sono opzioni open source perfettamente praticabili per quasi tutti i pacchetti che hai menzionato. Octave è quasi compatibile con il linguaggio Matlab.
@DimaPasechnik: Non hai "rubato" niente. Hai usato una copia di Matlab e hai aggirato un meccanismo insidioso che limitava la tua capacità di farlo. Inoltre, non potresti semplicemente usare Octave? O meglio, prova ad approfondire il motivo per cui non puoi utilizzare le alternative gratuite.
@ScottSeidman 15 anni fa Octave in realtà non faceva tutto quello che poteva adesso; IIRC non esisteva alcun meccanismo per collegare librerie C esterne, qualcosa di abbastanza cruciale, o forse era troppo diverso dai file mex di Matlab per essere di valore per me. Non c'erano elementi essenziali per l'argomento Octave equivalenti dei toolbox Matlab disponibili. Nessuno nella comunità di cui sto parlando si è nemmeno preoccupato di scrivere codice compatibile con Octave.
@einpoklum: certamente aggirare la licenza di un pacchetto software commerciale è un furto, poiché priva il suo fornitore di entrate extra che avrebbe ottenuto nel caso in cui la licenza fosse stata acquistata correttamente.
@ScottSeidman Posso facilmente nominare cose non disponibili (o disponibili, ma totalmente inadeguate) in qualsiasi pacchetto open-source, ma disponibili in Mathematica o Magma. Per esempio. strumenti per risolvere disuguaglianze polinomiali multivariate.
@DimaPasechnik: Arrgh, amico! Rinuncia ai tuoi profitti immaginari, amante della terra! Torniamo alla nave pirata, uomini!
einpoklum
2016-12-04 04:29:31 UTC
view on stackexchange narkive permalink

Sì, non è etico * .

Ci sono quattro aspetti del software di cui parli che sollevano problemi etici: Essere closed source , essere proprietario e due aspetti che non hai menzionato ma che sono caratteristici del software proprietario closed-source: richiedono un pagamento (non trascurabile) e richiedono l'accettazione di un licenza restrittiva per l'utilizzo.

Problemi con il software closed-source :

  • Il suo uso ostacola la riproducibilità (vedere @ DaveKetcheson's answer)
  • Il suo utilizzo ostacola la risoluzione di risultati / affermazioni di ricerca contraddittori).
  • L'uso di software closed-source ostacola il sviluppo del software: il tipo specifico di applicazione che stai utilizzando e in generale. IMHO.
  • Mette i fornitori di software in una posizione di potere su noi stessi, e quindi indirettamente sulla nostra ricerca e sulla comunità interessata alla nostra ricerca. Esempi famosi includono spionaggio governativo, sabotaggio tra stati e collegamenti hardware.

Problemi con software proprietario (e le sue licenze tipiche):

  • Crea restrizioni artificiali alle nostre libertà come ricercatori e utenti:
    • Per eseguire il software in qualsiasi modo e dove sia vantaggioso per la nostra ricerca;
    • Applicare le lezioni apprese dallo studio del programma nel nostro lavoro di ricerca e possibilmente modificarlo per adattarlo meglio alla nostra ricerca (potrebbe essere tecnicamente possibile con accesso alla fonte ma legalmente vietato);
    • Distribuire copie per la riproduzione e ulteriore lavoro ai ricercatori all'interno del nostro gruppo / istituzione e ad altri;
    • Per distribuire copie delle nostre modifiche e adattamenti all'interno dei nostri gruppi di ricerca e ad altri;
  • Spesso influisce su rapporti di potere simili tra venditore e utenti anche senza che la fonte venga chiusa. Ad esempio, un fornitore influisce sul collegamento hardware vietando l'installazione legale su hardware non autorizzato.

Problemi con il software che richiede un pagamento per l'uso:

  • Crea un onere eccessivo per altri ricercatori che desiderano (1) valutare / rivedere (2) illustrare i limiti / difetti o (3) estendere e migliorare i risultati.
  • Se aumenta la pressione su altri ricercatori affinché acquistino software simile per tenere il passo - e questo è un effetto indiretto su tutti i ricercatori nel tuo campo.
  • Se diminuisce l'impulso e la disponibilità di fondi per lo sviluppo di software libero (= gratis, libero) per fare lo stesso.

(*) ... ma con tutto ciò detto - questi aspetti non etici pesano sul potenziale beneficio pubblico nell'ottenere e pubblicare i risultati della ricerca. Assicurati di impilare equamente entrambi i lati della scala quando prendi la tua decisione e di pensare agli altri oltre che a te stesso.

Semplicemente non sono d'accordo. La maggior parte degli oppositori ai programmi closed source sostengono "non è la scelta migliore", o "cerca di evitare", ma non "di discutibile etica". Sebbene ci siano certamente valide ragioni per utilizzare software libero e open source, nessuno degli argomenti che offri raggiunge il livello di preoccupazione etica.
@ScottSeidman: Innanzitutto, hai sicuramente diritto alla tua opinione. Tuttavia, stai facendo un'affermazione implicita e una esplicita con cui non sono d'accordo: 1. Un argomento viene screditato se la maggior parte delle persone usa un argomento diverso / più debole; 2. L'affermazione "la maggior parte delle obiezioni". Per questi ultimi si rimanda ad alcune evidenze statistiche. Nella mia esperienza, sono soprattutto i tipi aziendali a rendere questo argomento più debole. Quanto al primo, i miei argomenti o le mie affermazioni sono validi, giusti o sbagliati.
@ScottSeidman: Fino al punto, però, se non credi che causare gli effetti che ho elencato sia problematico, allora con il dovuto rispetto trovo che la tua opinione non sia etica e, di fatto, immorale. E questo è rafforzato dalla tua risposta e da un commento su un'altra risposta qui, in cui affermi che il software copiato è "rubato", che la copia è "pirateria" e che non dovrebbe essere incoraggiata.
Stai davvero cercando di affermare che la copia del software non è un furto di proprietà intellettuale? https://www.fbi.gov/investigate/white-collar-crime/piracy-ip-theft Ci sono certamente paesi in cui il concetto di proprietà intellettuale è molto più sciolto, ma per quanto ne so, il tuo non è uno di loro. Per quanto riguarda il backup delle posizioni, te lo rimetterò. Assegna un nome a una rivista rispettabile che non pubblicherà un documento che utilizza software di origine vicina perché la professione lo considera eticamente discutibile.
Con "la maggior parte degli obiettori", intendevo le risposte a questa domanda. La difesa statistica sta semplicemente contando le risposte che dicono che l'utilizzo di software closed source è di interesse etico.
Ah, ok, beh - ho dato la mia risposta fondamentalmente per la stessa ragione - che altre risposte a questa domanda non riflettono le mie opinioni o quelle di moltissime persone (indipendentemente dal fatto che siano la maggioranza).
@ScottSeidman: Inoltre, il modo in cui la legge statunitense definisce le cose non è una base per le mie definizioni. Molti stati nel mondo (non sono sicuri degli Stati Uniti però) definivano l'omosessualità come una forma di stupro, o un abominio, o una perversione, ecc.
Mr. Lynch
2016-12-02 22:05:27 UTC
view on stackexchange narkive permalink

Penso che dobbiamo andare alla base della domanda; la risposta alle domande etiche inizia con la morale (la scienza del bene e del male). Nello specifico, dovremmo chiederci ... * stiamo commettendo qualche inganno nei confronti di qualcuno coinvolto? (ad esempio, abbiamo divulgato tutto ciò che riguarda la ricerca, inclusi tutti i potenziali conflitti di interesse?) Mettiti nei panni degli altri: cosa vorrei che facesse qualcun altro se di fronte alla mia situazione, e avevo un interesse nella ricerca? * ci stiamo appropriando di qualcosa che non ci appartiene?

Se non riusciamo a identificare una specifica obiezione morale , procediamo all'etica specifica del campo, vale a dire: * è esiste un codice etico specifico per il campo in cui ci si è impegnati e che violerebbe? (Es. Giuramento di Ippocrate, in medicina, privilegio avvocato-cliente, ecc.) Hai firmato un accordo con il tuo datore di lavoro?

Infine, dovremmo procedere ad analisi "senza valore": costi / benefici, relativi praticità e disponibilità di alternative, risultati ragionevolmente attesi.

Si noti che collocare quest'ultima categoria nella posizione più alta significa ignorare del tutto l'etica e correre il rischio di giustificare mezzi discutibili con buoni fini - sempre un pericolo segno.

Spero che questo aiuti!

12/08/16 EDIT: dovrei aggiungerlo in base ai criteri di cui sopra, e le informazioni e le opinioni che ho visto finora (incluso questo thread), la risposta è no, non è immorale, di per sé (cioè, di per sé).

Ci sono circostanze in cui potrebbe diventare immorale, ma questo è diverso. Ad esempio, se scegliessi il software closed source perché tale scelta è stata a tuo vantaggio finanziario personale, sarebbe chiaramente immorale. O se sapessi di poter sfruttare una caratteristica o un bug in quel software per svantaggiare un concorrente scientifico, o ottenere un risultato più favorevole. In altre parole, le motivazioni contano molto.

Ad esempio, qualcuno sopra ha menzionato una motivazione di "marketing". Ciò diminuirebbe chiaramente l'accettazione / fiducia delle persone nei tuoi risultati se fossero divulgati.

Come in politica, il sole è il miglior disinfettante. Ovvero, divulgare tutto ciò che puoi ragionevolmente aspettarti possa influenzare l'accettazione dei tuoi risultati da parte di revisori non fidati.

Concordo con la premessa della tua risposta, ma stai facendo solo una domanda morale, mentre in realtà ci sono numerose domande da porre.
@einpoklum: mi dispiace per la mia formattazione: gli asterischi avevano lo scopo di contrassegnare domande separate. Volevo suggerire un _approccio_ alla domanda originale, in modo che l'interrogante potesse avere una certa fiducia nella risposta. FWIW, sono abbastanza sicuro che non sia intrinsecamente immorale utilizzare S / W proprietario per una ricerca scientifica.
Scott Seidman
2016-12-06 03:29:03 UTC
view on stackexchange narkive permalink

"Libero" non sempre significa "libero" quando si considerano tempo e impegno. La ricerca può essere costosa. Se qualcuno può acquistare un pacchetto e quel pacchetto viene fornito con un buon supporto e una documentazione eccellente che potrebbero farmi risparmiare tempo in un progetto di ricerca, sarebbe difficile credere che sarebbe più economico utilizzare l'open source se ci volesse più tempo. In effetti, mi spingerei a dire che se non avessi speso $ 2K per accelerare il mio lavoro, lasciando la mia agenzia di finanziamento a pagare lo stesso importo per una produzione inferiore, è più eticamente discutibile rispetto all'utilizzo del pacchetto proprietario. (Supponendo, ovviamente, che l'open source sia meno conveniente e che il closed source sia disponibile per tutti coloro che possono pagare - e sì, so che quelle non sono le uniche situazioni là fuori, quindi per favore non preoccuparti sottolineando le eccezioni in cui non è vero).

Corro Matlab, e corro Octave. Sono simili, ma ho un'esperienza più senza problemi con Matlab, quindi è su questo che tendo a fare doppio clic.

... e sì, uso MOLTO software open source, dove fa la mia vita è più facile. Raccomando anche SOLO l'open source agli studenti (... tranne Matlab, che ha una generosa licenza per studenti), perché ogni volta che menziono un pacchetto costoso a uno studente, il giorno successivo si presenta con una versione pirata, e io no desidera contribuire o incoraggiare il furto di proprietà intellettuale.

CoderMD666
2016-12-01 10:19:05 UTC
view on stackexchange narkive permalink

Non credo che questo sia un problema. Ad esempio, molti ricercatori biologi utilizzano Photoshop per elaborare le proprie immagini. Suppongo che il software open-source sia preferito da molti poiché è più in linea con i principi della ricerca aperta, ma assicurarsi che la tua metodologia sia solida e riproducibile è molto più importante in quasi tutte le situazioni.

Ma l'utilizzo di software con licenza chiusa / restrittiva impedisce alla maggior parte delle persone di verificare se la tua metodologia è valida e di riprodurre i tuoi risultati. E con Photoshop non è nemmeno così male, dal momento che è piuttosto comune, ma pensa al software che richiede hardware speciale e decine di migliaia di dollari da utilizzare.
user3131341
2016-12-04 05:01:58 UTC
view on stackexchange narkive permalink

Non dovrebbe importare. La maggior parte delle calcolatrici scientifiche, ma non tutte, calcolano i seni allo stesso modo. Sai come la tua calcolatrice calcola i seni?

Alcuni software gratuiti sono semplicemente inferiori. Un esempio specifico è OpenOffice. Per quanto sia meraviglioso, fallisce in alcune attività che Microsoft Office gestisce con disinvoltura e non ne tenta nemmeno altre.

E se usassi una gas-cromatografia Hewlett-Packard perché è l'unica che abbia mai avuto usato e qualcun altro ottiene risultati diversi usando un'altra marca? Sono responsabile?

non si dovrebbero elaborare dati scientifici utilizzando MS Office o altre suite per ufficio. I fallimenti di Excel in questo senso sono ben documentati in letteratura.
I fallimenti dei fornitori di software closed source per correggere i bug segnalati sono ben documentati; se ottieni risultati errati a causa di un software closed source difettoso allora, beh, potresti essere licenziato o, peggio, persone potrebbero morire


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...