¿Por qué los trabajos de investigación que mencionan software personalizado no liberan el código fuente? [cerrado]

69

¿Hay alguna razón por la que el código fuente del software mencionado en los trabajos de investigación no se publique? Entiendo que los trabajos de investigación tienen más que ver con la idea general de lograr algo que con los detalles de la implementación, pero no entiendo por qué no publican el código.

Por ejemplo, este documento termina con:

  

Resultados

     

El sistema de dibujo de línea humana se implementa a través del marco Qt en C ++ con OpenGL, y se ejecuta en una estación de trabajo con procesador de doble núcleo Intel de 2.00 GHz sin asistencia de hardware adicional. Podemos dibujar líneas de manera interactiva mientras el sistema sintetiza la nueva ruta y textura.

¿Mantienen el código fuente cerrado intencionalmente debido a una monetización que intentan realizar con él o debido a los derechos de autor?

    
pregunta Antoine 26.10.2012 - 18:19

18 respuestas

71

Varias razones vienen a la mente.

  • El código es demasiado grande para el artículo. Durante un corto período de tiempo, los proyectos interesantes fueron lo suficientemente cortos como para ser publicados con el documento que los describió. Esto todavía puede suceder, pero muchos proyectos de un tamaño lo suficientemente grande como para ser interesantes han crecido demasiado para ser publicados con los documentos que los describen.
  • Los hosts públicos no son gratuitos ni duraderos. Hasta hace poco, los hosts públicos baratos, duraderos y de fácil acceso no estaban disponibles.
  • Publicar un artículo es más fácil que publicar un proyecto. Algunas personas tienen tiempo para publicar un artículo o un proyecto, pero no ambos.
  • Incentivos relacionados con el rol. Hace muchos años, le pregunté a un colega sobre el desarrollo de productos y las patentes, y entendí que la mayoría de las personas casi hacían una o la otra. Al igual que con los escritores en papel (piense en la academia) y los desarrolladores de código abierto, las recompensas están orientadas hacia un producto de trabajo u otro.
  • Auto motivación. El deseo de describir ideas o de implementar un código no siempre está presente en partes iguales en la misma persona. Muchos de mis profesores admitieron abiertamente que o bien nunca codificaron mucho, o estaban a muchos años de haberlo codificado con fluidez. De manera similar, muchos desarrolladores apenas quieren escribir comentarios en su código o cuando se comprometen con el control de la fuente.
  • La durabilidad del alojamiento del proyecto y el producto de trabajo también es un problema. Quien quiera enlazar a algún lugar que pueda haber desaparecido dentro de unos años y, como resultado, disminuir el valor del documento.
  • Tradición. Los editores están orientados a revisar y publicar artículos, pero es posible que no estén listos para asumir la misma evaluación para proyectos.
    Además, las opiniones tradicionales sobre lo que es un nivel razonable de reproducibilidad varían entre los campos. Se espera que un químico que publica un artículo sobre un nuevo método de síntesis anote los detalles suficientes para que otro químico realice la síntesis. No se esperaría que ella enviara los productos y el producto a la revista. Se espera que los lectores que quieran usar / reproducir el artículo compren sus propios estudios y hagan la síntesis ellos mismos en su laboratorio (aunque pueden solicitar visitar el laboratorio para ver cómo se hace en la práctica). Tampoco se esperaría que un biólogo pegara sus nuevos ratones transgénicos al papel. Esta opinión sobre la reproducibilidad corresponde, por ejemplo, a dando una (pseudo-código) descripción del algoritmo en lugar de enviar la implementación real.
  • El código desnudo puede ser impactante . Se necesita mucho menos pulido para leer un documento de longitud en papel que para inspeccionar el código, revisar el código y asegurar la calidad de un proyecto. Tengo un montón de código del que me sentiría más cómodo contándote que mostrándote. Es de esperar que las cosas avancen hasta un punto en el que todos escribiremos código hermoso, pero si su código fue apresurado, apenas funciona o no funciona por completo, es posible que se sienta más cómodo al no compartir los ejecutables o la fuente.
  • Fuente cerrada. No todos han aceptado la fuente abierta. Se escriben muchos artículos sobre el trabajo para el Departamento de Defensa, proyectos comerciales o proyectos con financiación privada en los que el proyecto se beneficia de la exposición al público, pero aún existen secretos comerciales o, en primer lugar, las ventajas del mercado que podrían erosionarse al abrir el código o otros productos de trabajo.
  • Publique más trabajos basados en este código. Si el código no se publica, puede dar al autor una ventaja en la publicación de trabajos de seguimiento. Es posible que otros investigadores en competencia necesiten volver a implementar el trabajo, lo que puede llevar un tiempo precioso.
respondido por el DeveloperDon 17.10.2013 - 18:51
40

Lea la presentación de Randall LeVeque en "Las 10 razones principales para no compartir su código (y por qué debería hacerlo de todos modos)" enlace

Argumenta convincentemente que el código es análogo a las pruebas en Matemáticas, y nos invita a considerar un mundo donde las pruebas no se publican, porque son demasiado largas, demasiado feas o no funcionan en los casos límite, o podría valer dinero, o alguien podría robarlo ...

Básicamente, si estás haciendo ciencia, entonces debes publicar tu código. De lo contrario, estás haciendo alquimia y puedes volar de regreso a las edades oscuras y morir de plaga en lo que a mí respecta.

    
respondido por el Spacedman 25.10.2012 - 17:31
27

En general, los programas utilizados para producir los resultados de los artículos son solo herramientas, y solo los resultados son importantes. Por lo tanto, no se colocan en el documento que presenta el contexto, la metodología, los resultados y una discusión sobre ellos.

Pero los resultados deben ser reproducibles. Y luego, cuando las fuentes de datos en las que se basa el documento están disponibles públicamente, los programas que las transforman en resultados generalmente también se requieren. A menudo se colocan "en algún lugar" en la Web si no plantea ningún problema de patentes / derechos de autor. O, al menos, los autores deben enviarle los programas si los solicita.

    
respondido por el mgoeminne 25.10.2012 - 14:54
14

No es código cerrado. El software simplemente no se ha publicado en absoluto.

Respuesta corta:

  

Hay varias razones para no publicar el software, pero es poco común que se publique de manera cerrada.

Respuesta larga:

Fuente cerrada significa que el software se ha publicado y el código fuente no. Pero el caso común es que no se ha publicado ni el software ni el código fuente .

En mi experiencia (trabajo en ciencia atmosférica), los autores están muy contentos si se contactan con ellos y les preguntan si pueden obtener su software (incluido el código fuente, por supuesto) para realizar investigaciones. Si voy a escribir un documento con un proyecto basado en el de ellos, al menos obtendrán una cita (¡bien!), Pero probablemente obtendrán una cita -Autorizar el papel (porque, por supuesto, no documentaron su software para que alguien pueda usarlo sin su ayuda). Un artículo de coautor relativamente barato, por lo que es incluso mejor .

La verdadera pregunta es:

  

¿Por qué no publican el software?

Hay varias razones para esto:

  • El software publicado necesita documentación. Por lo general, a las personas no les gusta escribir documentación.
  • El software publicado puede atraer usuarios. Los usuarios pueden tener preguntas. Esto lleva tiempo (pero ver más arriba).
  • El software publicado puede requerir un mantenimiento no trivial.
  • El software de publicación requiere alojamiento.

La lista podría hacerse más larga. Merece ser una pregunta aparte, en Academia.SE, no aquí.

(Tenga en cuenta que en mi grupo, publicamos nuestro software, con licencia GPL )

    
respondido por el gerrit 25.10.2012 - 22:37
8

Eso puede sonar cínico, pero en mi experiencia, los trabajos de investigación no están escritos para que sean fáciles de entender o de reproducir. En cambio, en la comunidad de investigación es más importante tener un artículo que parezca muy científico. Por esa razón, la mayoría de los autores transforman su código en fórmulas matemáticas y tratan de probar que su algoritmo es matemáticamente correcto. Por lo general, el número de páginas para un artículo de este tipo está limitado, por lo que no queda espacio para publicar el código. Sin embargo, por supuesto, esto no limitaría a ningún autor a enlazar el código completo con una URL ...

Se podría suponer que si el código no se publica, los autores quieren medir sus hallazgos o (lo que personalmente creo que es el caso con más frecuencia) temen que las personas vean que su investigación no es tan impresionante como Reclamación. A menudo los resultados solo se aplican a un número muy limitado de casos.

También, he visto que de un programa simple / algortihm varios artículos de investigación se escinden. Si se publicara el código, sería difícil escribir más artículos sobre el mismo tema. Por lo tanto, se retiene el conocimiento para publicarlo a lo largo del tiempo en pequeñas porciones.

Siempre tenga en cuenta que en las universidades, lo importante no son tanto los resultados o la aplicabilidad de la investigación, sino la cantidad de artículos que publica. Es triste, pero cierto.

    
respondido por el codingFriend1 25.10.2012 - 11:52
7

Aparte de la intención de monetizar, no veo una buena razón para dejar el código fuente fuera de los trabajos de investigación. Hay un pequeño movimiento de inicio que propone suministrar el código fuente como norma para publicar cualquier investigación que dependa del software de alguna manera, forma o forma. Puedes leer más sobre esto, se llama Manifiesto del Código de Ciencia .

    
respondido por el hulkmeister 25.10.2012 - 16:41
6

Las respuestas anteriores omiten algunas razones prácticas que surgen con frecuencia en Computer Graphics (el área en la que se publicó el artículo mencionado por el autor). La Liberación de Código varía mucho entre los campos de CS; por ejemplo, en Machine Learning, el código generalmente se publica. En Human Computer Interaction, el código casi nunca se publica.

He publicado un poco de código en Computer Graphics, y aunque creo que los autores deberían publicar su código, existen muchas razones simples, sin teoría de la conspiración, por las que no 't . Por ejemplo

1) La mayoría de los proyectos de investigación de Gráficos por computadora involucran la colaboración entre múltiples investigadores, a menudo en diferentes instituciones, y cada uno proporciona alguna pieza del rompecabezas (es decir, algoritmos, bibliotecas, etc.). Para liberar código de trabajo, todos los investigadores tienen que estar de acuerdo. Esto rara vez es una discusión simple y, por lo general, es más fácil evitar el problema.

2) A menudo, el código para un solo papel está incrustado en una base de código más grande que se está desarrollando dentro de un laboratorio. Ese código base contendrá otro trabajo no publicado. Separar el código para un solo proyecto es mucho trabajo, a menudo sin un beneficio inmediato para las personas que tienen que hacer este trabajo (consulte el incentivo a continuación).

3) Las universidades a menudo tienen derechos de propiedad intelectual sobre el código. Por lo tanto, es necesario ponerse en contacto con una "oficina de innovaciones" que hará que su vida sea infinitamente difícil, deseando que documente el "invento" para que puedan patentarlo, etc., antes de abrirlo como fuente. En algunos casos, la universidad puede incluso denegar el permiso para liberar la fuente (esto varía entre las instituciones y se complica enormemente por (1))

4) Un montón de investigación de Gráficos por Computador es realizado por Corporaciones. En ese caso, los autores tampoco son dueños del código, y tienen que obtener el permiso de los abogados para divulgar el código. Los abogados tienen poco o ningún incentivo para decir que sí.

5) No hay incentivo para publicar código. La mayoría del código de investigación de Gráficos por computadora nunca es usado por nadie más Incluso si lo es, para el código de propósito general, por lo general solo recibe un reconocimiento (sin valor en términos de su CV). Si tienes suerte, obtendrás una cita. Los comités de contratación y las agencias de subvenciones generalmente no se preocupan en absoluto si usted publicó su código. Por lo tanto, el tiempo dedicado a preparar el código para el lanzamiento es un tiempo perdido que podría haberse dedicado a otro papel. (Hay personas que intentan cambiar esto activamente en Gráficos de computadora).

6) Hay incentivos para no publicar código. El código a veces se puede convertir en nuevas empresas, otorgar licencias a empresas existentes, etc. Esto financia la investigación futura. Todos tenemos que comer.

    
respondido por el Ryan Schmidt 30.10.2012 - 19:23
5

Depende. Una persona que escribe un documento, o su supervisor, decide qué se debe hacer con el código fuente. A veces, las personas hacen que el proyecto sea de código abierto.

A veces, los proyectos suelen ser financiados por empresas, lo que significa que es su propiedad. En esos casos, el autor del artículo no tiene permitido mostrar el código.

    
respondido por el BЈовић 25.10.2012 - 11:55
3

Por lo general, es una cuestión de limitaciones de la página. Si el algoritmo es extremadamente corto, a menudo se representa, al menos como pseudocódigo, en el documento. Por otro lado, si la versión impresa del código subyacente tiene incluso un puñado de páginas, imprimir el código no dejaría espacio para la carne del artículo. Un artículo de una revista que tiene diez páginas es un artículo largo.

No hacer que la fuente esté disponible crea un potencial de fraude. Debido a este potencial, muchas revistas ahora requieren que los autores envíen su código fuente como información complementaria (la cual se puede obtener en la revista si tiene acceso; es posible que tenga que pagar una alta tarifa de suscripción). Algunas otras revistas requieren que los autores liberen su código fuente a cualquiera que lo solicite. Sin embargo, otras revistas todavía están en la edad oscura; el código fuente no es obligatorio para el envío y los autores no deben publicarlo.

Lo más fácil es preguntar a los autores si pueden proporcionarle el código fuente. Las direcciones de correo electrónico de los autores suelen aparecer en la mayoría de los artículos de revistas de hoy en día.

    
respondido por el David Hammen 25.10.2012 - 12:36
3

Mi experiencia como científico (5 artículos publicados) es que muchas veces no es requerido por la revista para liberar el código que se utilizó para crear los resultados. Eso no quiere decir que las revistas no aceptarían los scripts. Muchas revistas permiten material complementario en línea. Algunas revistas orientadas a algoritmos y similares (por ejemplo, Computadoras y Geociencias) requieren que agregue la fuente de un algoritmo, pero esto es más una excepción que una regla.

Además de la cultura en las revistas, para los científicos el código es solo un medio para un fin. Muchos no son desarrolladores de software profesionales. Debido a que muchos consideran que el código es solo una herramienta para expresar la ciencia, no sienten la urgencia de publicar también el código. Además, pulir su código hasta el punto en que podría publicarse requiere mucho trabajo. A un científico se le paga para hacer ciencia, no para escribir software.

    
respondido por el Paul Hiemstra 25.10.2012 - 15:09
2

Más a menudo que no, el programa real es solo una herramienta para llegar al final, en lugar del producto por derecho propio. Proporcionar detalles completos del código fuente sería similar a proporcionar un dibujo completo del bolígrafo utilizado para firmar el informe y / o los esquemas de la PC.

Habiendo dicho eso, especialmente cuando se está invitando a la revisión por pares, el código fuente estará disponible, aunque bajo algún tipo de Acuerdo de no divulgación (NDA), ya que existe una propiedad intelectual inherente al programa.

Si está realmente interesado en el código, sugiero El comentario de @ Buttons es el mejor consejo: pregúnteles :)

    
respondido por el Andrew 12.04.2017 - 09:31
1

Mucho depende del propósito para el cual se escribió el código. Si fue para demostrar un punto, bien podría ser que no esté optimizado, y por lo tanto no es ideal que se lance. Si los conceptos y la metodología subyacentes son válidos, entonces debería ser posible recrear el resultado del código desde cero. También puede haber problemas de derechos de autor y propiedad.

En principio, no es técnicamente imposible liberar el código, pero las razones por las cuales podría no ser liberado varían. Probablemente no haya una respuesta simple a esta pregunta por esa razón. En casos específicos tal vez podría preguntar a los investigadores interesados.

    
respondido por el temptar 25.10.2012 - 13:10
1

El documento que citó ya tiene 28 páginas, y la mayoría del contenido trata sobre las decisiones de diseño que están relacionadas con la solución del problema (se indica en el título).

El código es el paso final para validar el diseño. No es trivial, pero no es la parte que agrega valor en los resultados del documento, especialmente si tuviera en cuenta el espacio que ocuparía.

No todos los casos son iguales. Algunos documentos dan el código fuente, o al menos el pseudo código. Algunos editores no lo permiten. Algunos lo permiten, pero debido al espacio, los autores no lo incluyen. Una revista en la que publiqué el código fuente con formato de "cifras" y la versión electrónica lo tiene como datos de imagen , aunque lo haya enviado como texto.

    
respondido por el Fuhrmanator 25.10.2012 - 16:56
1

Los incentivos son importantes y, en general, los incentivos de los investigadores son para garantizar que puedan producir un flujo constante de documentos que se incrementen unos sobre otros. Los estudiantes de posgrado generalmente necesitan de 3 a 5 trabajos publicados que puedan convertir en capítulos individuales de su tesis para graduarse. La facultad secundaria necesita generar tantas publicaciones como pueda antes de su revisión de la tenencia. Por esa razón, la mayoría de los artículos académicos son realmente paper n en una serie. Por ejemplo, el documento al que hace referencia se basa en un documento que el mismo grupo publicó un año antes y analiza el terreno que probablemente cubrirá el próximo documento.

La publicación del código fuente potencialmente permite que otro investigador en un grupo diferente produzca el papel n+1 antes de que lo haga el autor original o, al menos, que produzca un papel que cubra una fracción significativa del terreno que el autor esperaba cubrir como parte de este flujo de investigación. Si eso sucede, el estudiante graduado podría encontrarse fácilmente pasando otros 6 a 12 meses en la escuela de posgrado para producir suficientes resultados de investigación para graduarse. El miembro de la facultad puede terminar con un artículo publicado menos cuando llegue el momento de revisión de la tenencia. Ambos son obviamente grandes golpes para las carreras del investigador. Agregue el hecho de que las aplicaciones académicas a menudo son parte de los esfuerzos de investigación de varias personas dentro de un grupo de investigación (ya sea directamente o porque comparten ciertos componentes) y existe una presión dentro del grupo de investigación para no publicar un código que podría terminar perjudicando a alguien que trabajas todos los días.

A menudo obtiene discusiones similares en campos donde la recopilación de datos sin procesar requiere mucho tiempo y está altamente distribuida. En astronomía, por ejemplo, un grupo de investigación puede pasar años recolectando datos antes de tener suficiente información para publicar un artículo. Pero luego usarán esos datos para producir una serie de documentos. Los grupos de investigación son muy reacios a compartir más de sus conjuntos de datos de lo que es absolutamente necesario, ya que es demasiado fácil para otros grupos viajar libremente en el tiempo invertido en la recopilación de los datos para obtener los beneficios de analizarlos realmente. p>

Eventualmente, gran parte de este código se liberará al igual que los datos astronómicos finalmente se liberan. Esto ocurre a menudo cuando el autor llega al final de esa serie de artículos o cuando la mayoría de los grupos de investigación que trabajan en temas similares tienen motores similares, por lo que la publicación del código ya no le da a un nuevo investigador una ventaja competitiva.

Sería ideal para la ciencia si los datos y el código se publicaran más rápidamente. Pero eso a menudo perjudicaría al investigador científico y es a quiénes importan los incentivos en este caso.

    
respondido por el Justin Cave 26.10.2012 - 02:12
1

Como alguien que ha hecho esto (en el lado del estudiante) varias veces en el pasado: muchas veces los profesores que escriben el documento ni siquiera ven el código fuente por sí mismos. Harán que sus estudiantes graduados escriban el código y luego solo piden el ejecutable final (o incluso solo una confirmación del resultado) cuando esté completo.

Además, a menudo, el código escrito no es muy legible de todos modos, porque los estudiantes simplemente lo piratearon para hacerlo, y porque (aunque son muy brillantes) los estudiantes graduados sin real La experiencia mundial tiende a no ser los mejores programadores del mundo ...

    
respondido por el BlueRaja - Danny Pflughoeft 26.10.2012 - 17:23
1

La mayoría de las razones que se me ocurren ya se mencionaron aquí, pero pensé que agregaría dos más que realmente me sucedieron:

La revista no tiene idea de qué hacer .

Para uno de los documentos en los que estaba trabajando, decidí que era absolutamente, sin duda que iba a incluir el código fuente (todo el punto del documento era la visualización de datos) y datos de ejemplo que lo acompañaban. Así que junto con el envío adjunté los Suplementos electrónicos 1 y 2: un script R con mi código y un archivo CSV con los datos necesarios para dicho script R

La revista, según parece, solo puede tomar suplementos electrónicos si se han convertido en archivos de Word. Después de intentar durante la mayor parte del día obtener el script R en esa forma, me di por vencido y decidí no incluir el código como suplemento. Podría haberlo alojado en mi universidad, pero como estudiante graduado sabía que iba a perder mi cuenta allí en ~ 1 año; el código abierto no sirve de nada si se supera de inmediato con linkrot.

Terminé de alojarlo en GitHub y puse una referencia a eso en el periódico, pero eso se debía a que realmente quería que entrara el código. Puedo ver, especialmente porque la mayoría de las personas en mi No utilice algo como GitHub, solo decidir que el esfuerzo no valdrá la pena para un puñado de personas que lo descargarían, y que podrían enviarme un correo electrónico de todas formas si realmente lo desean.

La revista simplemente no está interesada

Inserté algunos pequeños detalles sobre el código en un documento a pedido de un revisor, pero es una revista clínica (lea: nadie codifica), no permite suplementos electrónicos, y nuevamente, agregar el código fuente Probablemente haya sido más problemático de lo que valía.

Irónicamente, si alguien fue a buscar el código, es de código abierto (o pronto lo será), pero ya estaba corriendo al borde de 'Esto está creciendo de manera perturbadora técnica' y yo Decidí que lo único que iba a hacer era hacer una breve mención, "hacer feliz al crítico".

    
respondido por el Fomite 18.10.2013 - 18:43
0

Muchas veces la implementación (es decir, el software no importa) pero cada vez más la implementación SÍ afecta los resultados.

Cada vez que la implementación sea importante ... ¡el código fuente debería estar disponible! Cuanto más dependan los resultados de la implementación o los métodos computacionales, más importante será publicar el código fuente.

    
respondido por el Trevor Boyd Smith 25.10.2012 - 17:55
0

Me gustaría agregar algunos puntos sobre el tipo de código con el que trato como quimiométrico (químico haciendo análisis de datos):

  • Las personas que escriben código de análisis de datos (como yo) son comparativamente pocas en comparación con las personas que usan ese código. "Código personalizado escrito en casa" no significa que los autores lo escribieron, podría ser un código de colegas, por lo que los autores no pueden publicarlo.

  • Se puede planificar una publicación separada del código, y el autor del código (o el supervisor) puede estar preocupado de que la novedad se pierda si el código se ha hecho (parcialmente) público anteriormente.
    Incluso si la revista a la que se destina la publicación de códigos no se opone a que el código haya estado disponible públicamente antes, la única preocupación del supervisor (o alguien en la oficina de PI) puede ser suficiente para detener la publicación. publicación del código.

  • El código de análisis de datos a menudo se adapta a los datos. No tiene mucho sentido sin los datos. (Puede argumentar que los datos deberían publicarse de todos modos, pero esa es una pregunta diferente y fuera de tema aquí).
    De cualquier manera, en mi instituto, archivamos datos en bruto y código de análisis de datos junto con el documento. La política predeterminada no está (¿todavía?) Para que estén públicamente disponibles, pero sin duda estarían disponibles a pedido.

  • (La opinión tradicional sobre qué es la reproducibilidad en química corresponde más bien a una descripción (posiblemente pseudo-código) del algoritmo que al envío del código fuente real)

  • Muchos de mis colegas usan herramientas interactivas para su análisis de datos que no registran los pasos del análisis de datos. Así que no hay código fuente que pueda publicarse. El análisis de datos corresponde menos a una programación que a un enfoque de laboratorio: usted hace cosas y escribe lo que hace y observa en su libro de laboratorio.

respondido por el cbeleites 17.10.2013 - 19:13

Lea otras preguntas en las etiquetas