Domanda:
Perché i ricercatori CS sono riluttanti a condividere il codice e quali tecniche posso utilizzare per incoraggiare la condivisione?
Stephen Tierney
2013-05-27 11:29:12 UTC
view on stackexchange narkive permalink

Durante la ricerca di un'area tematica mi sono imbattuto in una serie di documenti che affermano di migliorare lo stato dell'arte e sono stati pubblicati in punti vendita rispettati (ad esempio CVPR, ICIP). Questi documenti sono spesso scritti in un modo che oscura alcuni dettagli e i loro metodi possono mancare di dettaglio. Dopo aver contattato questi autori per ulteriori informazioni e chiedendo se volessero rendere disponibile il loro codice sorgente, smettono di rispondere o rifiutano l'offerta.

Perché i ricercatori di informatica sono riluttanti a condividere il loro codice?

Mi sarei aspettato che la diffusione del codice sorgente avrebbe avuto effetti positivi per l'autore, ad esempio, un maggiore riconoscimento e visibilità all'interno della comunità e più citazioni. Cosa mi manca?

Per il futuro, quali sono alcuni modi migliori per avvicinarsi ad altri ricercatori che si tradurranno in un maggiore successo nell'ottenere una copia del loro codice sorgente?

Una questione importante, ma l'hai divisa in due domande? (Sui siti SE dovrebbe esserci una domanda per una ... beh, domanda.) Cioè, potresti creare un altro post dalla seconda domanda?
Ho considerato di separare le domande, ma ho pensato che la seconda non sarebbe stata da sola.
Puoi dare un'occhiata all'iniziativa Collective Mind: http://www.hipeac.net/system/files/grigori.pdf e il modello di pubblicazione corrispondente http://ctuning.org/cm-journal
Potrei pubblicare una risposta, ma sarebbe qualcosa del tipo: come potremmo cambiare le cose in modo che più persone pubblichino il loro codice sorgente? Sarebbe accettabile o appartiene a una domanda diversa?
@FaheemMitha, che suona come una domanda diversa per me, ma una buona domanda. Perché non pubblichi una domanda diversa chiedendo come cambiare le cose in modo che più ricercatori CS condividano il loro codice sorgente?
La soluzione a questo problema è semplice, rende la ricerca CS (e la ricerca in generale) meglio finanziata. Il problema è che non vi è alcun supporto per il costo di portare il codice di ricerca a un livello di qualità in cui i costi di manutenzione siano sostenibili.
@DikranMarsupial Non sono convinto che buttare più soldi ai ricercatori migliorerà la situazione in quanto hanno tempo limitato. Non penso che la distribuzione di codice di alta qualità sia il problema, è solo una scusa che la gente usa. Rilasciare codice errato è meglio che non rilasciarne nessuno.
fondi aggiuntivi risolveranno il problema in quanto significa che possono assumere qualcuno per mantenere il codice o possono essere acquistati da altri compiti per liberare il tempo per farlo da soli. Mi piace rilasciare codice, e l'ho fatto in passato, il motivo per cui non ne rilascio altro è che non ho il tempo per la manutenzione, che so per esperienza è necessario. Non sono d'accordo sul fatto che un codice errato sia meglio di niente, ho sprecato diverse settimane all'inizio di quest'anno cercando di far funzionare il codice di ricerca di qualcun altro, senza alcun risultato. Ovviamente gli autori sono stati di aiuto limitato perché hanno gli stessi problemi che ho io.
Devo aggiungere che mia moglie è piuttosto attiva nel fornire codice ed è indotta alla distrazione dal volume di richieste di aiuto da parte degli utenti, correzioni di bug, estensioni, ecc. dove c'è un vasto pubblico, il costo della manutenzione è * tutt'altro * banale.
Cinque risposte:
D.W.
2013-05-28 09:59:46 UTC
view on stackexchange narkive permalink

Perché i ricercatori potrebbero essere riluttanti a condividere il proprio codice: nella mia esperienza, ci sono due ragioni comuni per cui alcuni / molti ricercatori non condividono il proprio codice.

Primo, il il codice può dare ai ricercatori un vantaggio importante per il lavoro successivo. Può aiutarli a fare un passo avanti rispetto agli altri ricercatori e a pubblicare più rapidamente le ricerche successive. Se i ricercatori hanno in programma di svolgere ulteriori ricerche, mantenere segreto il loro codice offre loro un vantaggio competitivo e li aiuta a evitare di essere scoperti da qualcun altro. (Questo può essere positivo o negativo; non prendo posizione al riguardo.)

Secondo, molto codice di ricerca è, beh, qualità di ricerca. I ricercatori probabilmente pensavano che fosse abbastanza buono per testare le ipotesi dell'articolo, ma questo è tutto. Potrebbe avere molti problemi noti; potrebbe non avere alcuna documentazione; potrebbe essere difficile da usare; potrebbe essere compilato su una sola piattaforma; e così via. Tutti questi possono rendere difficile l'utilizzo da parte di qualcun altro. Oppure, potrebbe essere necessario un po 'di lavoro per spiegare a qualcun altro come utilizzare il codice. Inoltre, il codice potrebbe essere un prototipo, ma non di qualità di produzione. Non è insolito prendere scorciatoie durante la codifica: scorciatoie che non influenzano i risultati della ricerca e vanno bene nel contesto di un documento di ricerca, ma ciò sarebbe inaccettabile per il codice di qualità di produzione distribuito. Alcune persone sono perfezioniste e non amano l'idea di condividere il codice con debolezze note o dove hanno preso scorciatoie; non vogliono essere imbarazzati quando gli altri vedono il codice.

La seconda ragione è probabilmente la più importante; è molto comune.

Come contattare i ricercatori: il mio suggerimento è di focalizzare nuovamente le tue interazioni con quei ricercatori. Quali sono i tuoi veri obiettivi? I tuoi veri obiettivi sono comprendere meglio i loro algoritmi. Quindi, inizia da quella prospettiva e agisci di conseguenza. Se ci sono parti del documento che sono difficili da seguire o ambigue, inizia leggendo e rileggendo il loro articolo, per vedere se ci sono alcuni dettagli che potresti aver perso. Pensa attentamente a come colmare eventuali lacune mancanti. Fai uno sforzo serio per conto tuo, prima.

Se sei a un livello di ricerca e hai fatto uno sforzo serio per capire, e ancora non capisci ... invia un'email agli autori e chiedi chiarimenti sui punti specifici che ritieni non siano chiari. Non disturbare inutilmente gli autori, ma se mostri interesse per il loro lavoro e hai una buona domanda, molti autori sono felici di rispondere. Sono solo grati che qualcuno stia leggendo i loro articoli e sia abbastanza interessato al proprio lavoro da studiarlo attentamente e porre domande perspicaci.

Ma assicurati di porre buone domande. Non essere pigro e chiedi agli autori di chiarire qualcosa che potresti aver capito da solo con più pensiero. Gli autori possono percepirlo e ti considereranno un parassita, non un collega stimato.

Molto importante: ti preghiamo di comprendere che la mia risposta che spiega perché i ricercatori potrebbero non condividere il loro codice è intesa come una risposta descrittiva , non una risposta prescrittiva . Non sto enfaticamente esprimendo alcun giudizio sul fatto che le loro ragioni siano buone o se i ricercatori abbiano ragione (o torto) a pensare in questo modo. Non prendo posizione sul fatto che i ricercatori debbano condividere il loro codice o meno; Sto solo descrivendo come si comportano si alcuni ricercatori. Quello che dovrebbero fare è una palla di cera completamente diversa.

Il poster originale ha chiesto aiuto per capire perché molti ricercatori non condividono il loro codice, ed è a questo che sto rispondendo. Le discussioni sul fatto che queste ragioni siano buone sono soggettive e fuori tema per questa domanda; se vuoi avere quel dibattito, pubblica una domanda separata.

E per favore, ti esorto a usare un po 'di empatia qui. Indipendentemente dal fatto che tu pensi che i ricercatori abbiano ragione o torto a non condividere il loro codice in queste circostanze, ti preghiamo di comprendere che molti ricercatori hanno ragioni che si sentono valide e appropriate per loro. Cerca di capire la loro mentalità prima di criticarli di riflesso. Non sto cercando di dire che le loro ragioni siano necessariamente giuste e buone per il campo. Sto solo dicendo che, se vuoi persuadere le persone a cambiare le loro pratiche, è importante prima capire le motivazioni e le forze strutturali che hanno influenzato le loro azioni attuali, prima di lanciarti nel tentativo di convincerle ad agire in modo diverso.


Appendice: secondo la raccomandazione di Jan Gorzny di leggere l'articolo su SIAM News che cita. È informativo.

Apprezzo la franchezza e la severità di questa risposta.
+1 La maggior parte del codice è scritta entro una scadenza, sia che si tratti di uno studente di dottorato che cerca di finire o di un post doc che ottiene un deliverable fatto in tempo. Conosco molte persone (me compreso fermamente) che sarebbero imbarazzate a essere giudicate in base alla qualità del loro codice piuttosto che alla ricerca effettiva che supporta.
Erel Segal-Halevi
2013-05-27 14:18:57 UTC
view on stackexchange narkive permalink

Stephen, ho la tua stessa esperienza e la mia spiegazione è che il rapporto costi / benefici è troppo basso.

Preparare un pezzo di software, in modo che possa essere utilizzato da un altro persona, è difficile, spesso anche più difficile che scriverlo in primo luogo. Richiede, tra gli altri:

  • scrivere documentazione e istruzioni di installazione,
  • assicurarsi che il codice sia eseguibile su una varietà di computer e sistemi operativi (io codice su Ubuntu, ma puoi scrivere codice su Windows, quindi devo procurarmi una macchina virtuale Windows per assicurarmi che funzioni anche lì),
  • rispondendo alle domande di manutenzione del modulo "perché ottengo questo e quell'errore di compilazione quando compilo il tuo programma sulla nuova versione di Ubuntu "(vai a capire. Forse la nuova versione di Ubuntu ha lasciato cadere qualche libreria richiesta dal codice? chi lo sa).
  • prendersi cura delle dipendenze di terze parti (il mio codice potrebbe funzionare va bene, ma dipende da qualche file jar di terze parti il ​​cui autore ha deciso di rimuovere dal Web).

Inoltre, dovrei essere disponibile a rispondere a domande e correggere bug, diversi anni dopo laureato, quando già lavoro a tempo pieno in un altro posto e ho figli piccoli.

E tutto questo, senza ottenere alcun pagamento speciale o credito accademico per tutto questo impegno.

Una possibile soluzione a cui ho pensato di recente è quella di creare una nuova rivista, Journal of Reproducible Computer Science , che accetti solo pubblicazioni i cui esperimenti possono essere ripetuti facilmente. Ecco alcuni dei miei pensieri su una rivista di questo tipo:

I documenti inviati devono avere una sezione riproduzione dettagliata, con (almeno) le seguenti sottosezioni: - pre -requisiti - quali sistemi, software di terze parti, ecc., sono necessari per ripetere l'esperimento; - istruzioni : istruzioni dettagliate su come ripetere l'esperimento. - licenze : licenza open source o closed source, ma deve consentire l'utilizzo gratuito a fini di ricerca.

Il processo di revisione richiede che ciascuno di 3 revisori diversi, con background diversi, attraversi questa sezione, utilizzando computer e sistemi operativi diversi.

Dopo il processo di revisione, se il documento viene accettato per la pubblicazione, ci sarà un altro passaggio di pre-pubblicazione , che durerà un anno. Durante questa fase, il paper sarà a disposizione di tutti i lettori, che avranno la possibilità di ripetere l'esperimento e di contattare anche l'autore in caso di problemi. Solo dopo quest'anno, il documento sarà finalmente pubblicato.

Questa rivista consentirà ai ricercatori di ottenere credito per il difficile e importante lavoro di rendere il loro codice utilizzabile da altri.

EDIT: Ora vedo che qualcuno ci ha già pensato! https://www.scienceexchange.com/reproducibility

"Science Exchange, PLOS ONE, figshare e Mendeley hanno lanciato la Reproducibility Initiative per affrontare questo problema. È ora di iniziare premiare le persone che si prendono il tempo extra per svolgere il lavoro più attento e riproducibile. Gli attuali incentivi accademici pongono l'accento sulla novità, che va a scapito del rigore. Gli studi presentati all'Iniziativa si uniscono a un pool di ricerca, che sarà selettivamente replicato man mano che i finanziamenti diventano disponibili. L'iniziativa opera su base opt-in perché riteniamo che il consenso scientifico sul lavoro più solido, in opposizione al lavoro più citato, sia un segnale prezioso per aiutare a identificare risultati riproducibili di alta qualità che possono essere attendibilmente costruito per far avanzare la comprensione scientifica. "

Non credo sia una risposta valida. Puoi solo documentare la tua configurazione o anche solo distribuire il codice. Anche se non posso correre, posso imparare molto semplicemente ispezionandolo.
Anche io la pensavo in questo modo, ma col tempo ho imparato che quando rilasci il tuo codice al pubblico, inevitabilmente hai qualche responsabilità al riguardo. Se il codice non è ben documentato, se non si compila, se non funziona, le persone ti riterranno responsabile e potrebbe essere dannoso per la tua reputazione.
Sono d'accordo che se il tuo codice non si compila o non viene eseguito, potrebbe essere un male per la tua reputazione, ma penso che sia ragionevole rifiutare le richieste di modifica / correzione del codice se lo stai semplicemente pubblicando. Se stai gestendo un progetto open source è diverso, ma perché la pubblicazione del codice sorgente richiederebbe qualcosa di più della semplice risposta alle domande (come farebbe qualsiasi pubblicazione)?
* I documenti inviati devono avere una sezione di riproduzione dettagliata * - un'idea simile è stata diffusa nella comunità dell'architettura dei computer per alcuni anni, ma implica fornire una macchina virtuale funzionante con il codice installato e pronto. Avvia la macchina virtuale e via.
@ErelSegalHalevi È molto peggio per la reputazione nascondere i dettagli di implementazione. IMHO, fondamentalmente significa "credimi". Non è così che funziona la scienza. Nascondere il codice viola la legge più importante del fare scienza: la falsità. Non puoi invalidare un'opera se non hai accesso ad essa. L'autore può nascondersi dietro questo sipario nero negando qualsiasi tentativo di riprodurre / invalidare il suo articolo dicendo che non è identico al suo metodo.
La risposta di @Spidey, Erel è completamente accurata. Descrive una mentalità che hanno molti ricercatori. Quella mentalità potrebbe essere positiva o negativa per il campo, ma a prescindere, ciò che importa è che molti ricercatori condividono quella mentalità e agiscono di conseguenza. Il poster originale chiedeva una spiegazione del motivo per cui molti ricercatori hanno deciso di non condividere il loro codice; Erel ha fornito una descrizione accurata del motivo per cui alcuni / molti ricercatori hanno deciso di farlo. Puoi essere d'accordo o in disaccordo sul fatto che abbiano fatto la scelta migliore, ma non è questo il problema qui.
@Spidey, Sono d'accordo che sarebbe molto meglio per la scienza pubblicare tutto il codice. Ecco perché ho suggerito un modo per incoraggiare gli autori a pubblicare il loro codice.
+1 per "Journal of Reproducible Computer Science", che tra l'altro rende interessanti le ricerche su Google. Ma come sviluppatore penso che i tuoi requisiti per il confezionamento del codice siano troppo forti. Chiunque conosca la frase "bit rot" saprà che è irragionevole aspettarsi che qualcun altro mantenga il codice che è stato semplicemente creato per dimostrare un punto.
C'è molta ricerca in questo settore fatta da G.Fursin: cerca di rendere riproducibile il CS. Vedi la presentazione su http://www.hipeac.net/system/files/grigori.pdf per esempio. Cerca anche di spingere un nuovo modello di pubblicazione http://ctuning.org/cm-journal
@D.W. Hai ragione al 100%. Volevo dire che non è un motivo valido per non condividere.
@ErelSegalHalevi: Il tuo sogno di avere carte riproducibili è molto bello. Ma pensa al tempo di pubblicazione. Attualmente ci vogliono circa 6-18 mesi per pubblicare un articolo. La pubblicazione in quella rivista può richiedere 2-3 anni se sono necessari revisori non pagati (di solito professori) per leggere tutta la documentazione, imparare il linguaggio usato, installare strumenti, risolvere i problemi del codice ed eseguire per controllare se tutto va bene. Sembra più pratico utilizzare un'istanza cloud, caricare il codice e consentire ai revisori / lettori di accedere al codice caricato piuttosto che fare tutto da soli. In questo modo, aumenta anche la fiducia.
@Espanta: Un passo alla volta. Innanzitutto, condividi il codice. Quindi pensiamo alla revisione tra pari del codice.
@Spidey: "È molto peggio (...)" - quando si guarda solo alla scienza, sì, ma (almeno al mio posto) molti dottorandi hanno l'obiettivo finale di lasciare il mondo accademico dopo il dottorato per accettare un lavoro nel settore, o avviare la propria azienda. Una volta che sono lì, * saranno * giudicati dalla qualità di qualsiasi loro codice che sia pubblicamente disponibile, e il "codice di stile prototipo sperimentale" rifletterà * estremamente male * la loro reputazione. Quindi, posso capire appieno se condividono il codice solo su richiesta piuttosto che renderlo scaricabile da qualche parte. (Tuttavia, dovrebbero reagire alle richieste.)
Jan Gorzny
2013-05-28 06:07:28 UTC
view on stackexchange narkive permalink

Questo articolo su SIAM News fa luce sulla prima domanda, quindi potrebbe valere la pena dare un'occhiata. Sostiene, per un pubblico matematico, perché i ricercatori dovrebbero pubblicare il loro codice sorgente ed elenca molti dei motivi per cui potresti sentire perché i ricercatori non condividono il loro codice sorgente. Lo fa per un'analogia intelligente, che paragona la condivisione di prove matematiche alla condivisione del codice sorgente. Guarda; ha un elenco piuttosto ampio di ragioni per cui i ricercatori potrebbero preferire non condividere il loro codice sorgente (così come alcune risposte che sostengono che queste ragioni non sono buone).

Ecco una citazione:

Dieci principali motivi per non condividere il tuo codice (e perché dovresti comunque). Randall J. LeVeque. SIAM News, 1 aprile 2013.

Ti suggerisco di fornire maggiori informazioni sull'articolo a cui ti colleghi. Ad esempio, indica il titolo e forse una frase che descrive l'idea principale. Tieni presente che i collegamenti scadono e la tua risposta sarebbe più utile se fornisse le informazioni anche se il collegamento non riesce.
Espanta
2013-05-27 13:19:44 UTC
view on stackexchange narkive permalink

Nella condivisione del codice ci sono diversi problemi:

  • Il primo problema è il copyright, poiché alcune delle ricerche / progetti CS sono finanziati da alcuni industriali / organizzazioni di finanziamento che scoraggiano la condivisione informazioni sensibili come algoritmi, codice o software durante la pubblicazione in periodici pubblici.

  • In effetti, ci sono documenti basati su determinati dati (raccolti dall'esecuzione del codice) che purtroppo vengono modificati manualmente dagli autori. Se condividono il codice, rilevare i loro errori / errori / modifiche diventa molto facile, portando al fallimento del loro MS / PhD o del loro progetto di ricerca, il che è indesiderabile.

  • Nella ricerca CS e in particolare la pubblicazione, lo sviluppo di codice, in particolare un codice lungo e complesso, è un compito non banale e nella maggior parte dei casi è considerato un asset per fare soldi e generare carta. Condividendo il codice al pubblico, stanno svelando fatti in modo molto dettagliato che potrebbero degradare il loro contributo nelle ricerche future. Inoltre potrebbero non essere gli unici in grado di rigenerare l'articolo e dare credito a quella particolare ricerca e codice. Nella maggior parte dei casi, gli studenti del master scelgono un algoritmo o un metodo, lo modificano leggermente e presentano una tesi e un documento basati su di esso, che potrebbero contraddire i risultati e le affermazioni del primo autore. Ricorda Thoma Herdon, uno studente laureato che ha criticato i risultati di due eminenti economisti dell'università di Harvard ( qui è il collegamento). Se i codici in CS vengono rivelati, le conseguenze sono probabilmente catastrofiche (potrebbero non essere troppi casi, ma se accadrà sarà catastrofico).

  • I codici sono proprietà vitali per la maggior parte dei ricercatori per condurre esperimenti e ricerche. Se hai un codice, puoi semplicemente giocarci e modificarlo per generare una nuova serie di risultati che potrebbero essere più preziosi dei risultati iniziali. Senza avere la paternità dell'autore iniziale, non c'è merito per loro.

Tuttavia, Elsevier ha recentemente introdotto una nuova funzionalità utilizzando COLLAGE chiamata Executable Papers che è attualmente disponibile per la rivista Computers & Graphics grazie alla quale sono disponibili codici e dati e i ricercatori possono modificare il codice e i valori di input con cui giocare.

Spero che aiuti.


_Se i codici in CS vengono rivelati le conseguenze sono probabilmente catastrofiche._ - Quindi stai accusando un'intera disciplina intellettuale di frode? Veramente?
@JeffE Non sarei così duro definire tutto questo una frode, ma migliorerebbe sicuramente la qualità complessiva dei documenti di ricerca.
A me suona come un'accusa di frode, o almeno di incompetenza criminale. L'unico motivo per cui pubblicare dati / codice sarebbe "catastrofico" è se quei dati / codice non supportassero le conclusioni pubblicate su quei dati / codice, come non facevano nel documento di Reinhart-Rogoff _ si riferivano a una frase prima_.
Penso che il tuo secondo punto sia davvero il più importante. Se altri possono replicare la ricerca avanzata e modificarla leggermente per produrre nuovi risultati pubblicabili, allora perdi la capacità di capitalizzare tutto il tuo duro lavoro per sviluppare il codice per cominciare.
_ perdi la capacità di capitalizzare tutto il tuo duro lavoro [citazione necessaria]
Non ottengo il secondo punto e la seconda metà del terzo punto. Da quando CS sta per pseudo-scienza spazzatura disonesta in cui gli autori manipolano i dati e nascondono i dettagli perché altrimenti ciò che chiamano "risultati" verrebbe falsificato? Se si traduce in una catastrofe per gli autori essere tutti onesti e rendere le cose verificabili, il tuo campo dovrebbe essere già crollato e andato per sempre. Come ha detto JeffE, stai accusando CS se stai suggerendo che queste sono risposte valide alla domanda di OP. Devi presentare le prove. Oh, hai raccolto prove con il tuo codice e le hai manipolate? È così che funziona CS, eh?
* "copyright [...] un gran numero di ricerche CS sono finanziate da alcune organizzazioni che non consentono alle persone di condividere i loro codici" * - A quale organizzazione ti riferisci? Non ne conosco uno che proibisca ai ricercatori di CS di condividere il loro software o qualsiasi motivo per cui il copyright impedisca la condivisione del software. Penso che questa affermazione sia semplicemente sbagliata.
Queste sono tutte buone ipotesi e il problema non è limitato a CS. Qualcuno sa di uno studio per determinare quale sia effettivamente in gioco? (pregiudizio da non risposta killer, probabilmente ... =)
@Erel Segal Halevi: ho modificato l'ultimo paragrafo e fornito il collegamento alla funzione.
@JeffE: Non ho intenzione di accusare, è la mia opinione da quello che ho già osservato ed è per questo che ho usato "probabile" per proteggere i bravi ragazzi e ricercatori, come te, che non falsificano i risultati. Aggiungo inoltre un'altra frase. a tale. Tuttavia, se il punto ferisce te e gli altri, mi scuso davvero. Non avevo intenzione di farlo. Scusa amico :)
@D.W .: Per me, è logico che gli industriali che finanziano progetti mantengano il diritto per l'algoritmo e il codice. Pensi che i documenti di grandi aziende di CS e comunicazione possano essere replicati facilmente? e sono disponibili al pubblico? Possono pubblicare il significato della loro ricerca, ma penso che cerchino di non condividere dati preziosi come il codice al pubblico. Non dimenticare che i concorrenti si guardano l'un l'altro. Una prova comune è la dichiarazione su carta pubblicata come "Approvato per la pubblicazione esterna". Questo [http://www.hpl.hp.com/techreports/2011/HPL-2011-55R1.pdf] è uno di quelli. Non sei d'accordo?
@Espanta, è un enorme salto da "pensi che sarebbe logico se i finanziatori impedissero ai ricercatori di condividere il codice" a ciò che hai effettivamente scritto. Solo perché pensi che qualcosa sarebbe logico, non significa che sia effettivamente così. Quello che hai effettivamente scritto nella risposta è quasi certamente sbagliato. Se ti interessa l'accuratezza, modificherai la tua risposta per correggere ciò che hai scritto e rimuovere l'affermazione che "un gran numero di ricerche CS sono finanziate da determinate organizzazioni che non consentono alle persone di condividere i propri codici".
@D.W .: Grazie amico. Ho apportato ulteriori modifiche per renderlo più preciso. Spero che non abbia molti problemi ora.
Il mio punto di vista su questo è che se non puoi condividere il codice e i dati, non puoi pubblicare. Semplice come quella. Puoi ancora ricercare e vendere la tua forza lavoro a chiunque, ma a che serve raccontare alla comunità scientifica i tuoi risultati se nessuno è in grado di riprodurli?
Devi condividere i dati, ma non necessariamente il codice. Nelle riviste, i revisori chiedevano di valutare se gli autori fornissero informazioni sufficienti per replicare il lavoro. Il codice non è l'unica cosa per la replica della ricerca. Ce ne sono molti altri che incidono sui risultati che variano da dominio a dominio. Ad esempio, per le app basate su cloud in esecuzione su dispositivi mobili, esiste un numero molto elevato di metriche come dispositivo e tipo di cloud, lingua prog., distanza cloud-mobile, tempo di raccolta dati, qualità della rete e molti altri. Quindi la replica del lavoro non è facile in tutti i domini; l'arte degli autori è stabilire fiducia nella sua carta.
user7130
2013-05-27 12:32:10 UTC
view on stackexchange narkive permalink

Non sono un ricercatore CS di per sé, ma sto scrivendo codice Android per le mie ricerche in fisica atmosferica, quindi la mia visione è alquanto limitata. Tuttavia, posso dire dalla mia esperienza personale che gran parte del codice che sto sviluppando e testando fa parte di un progetto più ampio che il team di cui faccio parte sta sviluppando. È un mix delle regole a cui sono vincolato e della necessità di tenere nascosta una porzione di codice per il momento.



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...