¿Hay alguna razón por la cual no se publica el código fuente del software mencionado en los trabajos de investigación? Entiendo que los trabajos de investigación tienen más que ver con la idea general de lograr algo que con los detalles de implementación, pero no entiendo por qué no publican el código.
Por ejemplo, este documento termina con:
Resultados
El sistema de dibujo lineal humano se implementa a través del marco Qt en C ++ usando OpenGL, y se ejecuta en una estación de trabajo con procesador Intel dual core de 2.00 GHz sin ninguna ayuda adicional de hardware. Podemos dibujar líneas interactivamente mientras el sistema sintetiza la nueva ruta y textura.
¿Mantienen el código fuente cerrado intencionalmente debido a una monetización que pretenden hacer con él o por derechos de autor?
Respuestas:
Se me ocurren varias razones.
Además, los puntos de vista tradicionales sobre lo que es un nivel sensible de reproducibilidad varía entre los campos. Se espera que un químico que publica un artículo sobre un nuevo método de síntesis escriba suficientes detalles para que otro químico realice la síntesis. No se esperaría que enviara los eductos y el producto al diario. Se espera que los lectores que quieran usar / reproducir el documento compren sus propios eductos y realicen la síntesis ellos mismos en su laboratorio (aunque pueden pedir visitar el laboratorio para ver cómo se hace en la práctica). Tampoco se esperaría que un biólogo adjunte sus nuevos ratones transgénicos al papel. Esta visión sobre la reproducibilidad corresponde, por ejemplo, a proporcionar una descripción (pseudocódigo) del algoritmo en lugar de enviar la implementación real.
fuente
Lea la presentación de Randall LeVeque sobre "Las 10 razones principales para no compartir su código (y por qué debería hacerlo de todos modos)" http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf
Él 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 o demasiado feas, o no funcionan en los casos extremos, o podrían valer la pena. 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 la edad oscura y morir de peste en lo que a mí respecta.
fuente
En general, los programas utilizados para producir los resultados de los documentos 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 a disposición del público, generalmente también se requieren los programas que las transforman en resultados. 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.
fuente
No es de código cerrado. El software simplemente no ha sido publicado en absoluto.
Respuesta corta:
Respuesta larga:
Fuente cerrada significa que el software ha sido publicado y el código fuente no. Pero el caso común es que ni el software ni el código fuente han sido publicados .
En mi experiencia (trabajo en ciencias atmosféricas), los autores están muy contentos si los contacta y les pregunta si puede obtener su software (incluido el código fuente, por supuesto) para realizar investigaciones. Si voy a escribir un artículo con un proyecto basado en el de ellos, al menos obtendrán una cita (¡bueno!), Pero probablemente obtendrán un documento en coautoría (porque, por supuesto, no lo hicieron) t documente su software para que alguien pueda usarlo sin su ayuda). Un artículo de coautor relativamente barato, por lo que es aún mejor .
La verdadera pregunta es:
Hay varias razones para esto:
La lista podría hacerse más larga. Merece ser una pregunta separada, en Academia.SE, no aquí.
(Tenga en cuenta que en mi grupo, publicamos nuestro software, bajo licencia GPL )
fuente
Eso puede sonar cínico, pero en mi experiencia los trabajos de investigación no están escritos para ser fáciles de entender o simples de reproducir. En cambio, en la comunidad de investigación es más importante tener un artículo que suene y se vea 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 demostrar que su algoritmo es matemáticamente correcto. Por lo general, el número de páginas para dicho artículo es 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 vincular al código completo con una URL ...
Se podría suponer que si el código no se publica, o bien los autores quieren momentáneamente sus hallazgos, o (lo que personalmente creo que es el caso más a menudo) tienen miedo de que la gente vea que su investigación no es tan asombrosa como afirman. A menudo, los resultados solo se aplican a un número muy limitado de casos.
Además, he visto que de un simple programa / algoritmo se desprenden varios trabajos de investigación. Si se publicara el código, sería difícil escribir más documentos sobre el mismo tema. Por lo tanto, el conocimiento se retiene para publicarlo a lo largo del tiempo en pequeños segmentos.
Siempre tenga en cuenta que lo importante en las universidades no es tanto los resultados ni la aplicabilidad de la investigación, sino la cantidad de artículos que publica. Es triste pero cierto.
fuente
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 partida que propone suministrar el código fuente como regla para publicar cualquier investigación que dependa del software de alguna forma o forma. Puede leer más al respecto, se llama Manifiesto del Código de Ciencias .
fuente
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 publicació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 bastante código en Computer Graphics, y aunque creo que los autores deberían publicar su código, hay muchas razones simples, no teóricas de conspiración, por las que no lo hacen . Por ejemplo
1) La mayoría de los proyectos de investigación de Computer Graphics implican la colaboración entre múltiples investigadores, a menudo en diferentes instituciones, cada uno de los cuales proporciona una pieza del rompecabezas (es decir, algoritmos, bibliotecas, etc.). Para publicar el código de trabajo, todos los investigadores tienen que estar de acuerdo. Rara vez es una discusión simple y generalmente es más fácil evitar el problema.
2) A menudo, el código para un solo documento está incrustado en una base de código más grande que se está desarrollando dentro de un laboratorio. Esa base de código contendrá otro trabajo no publicado. Separar el código para un solo proyecto es mucho trabajo, a menudo sin beneficio inmediato para las personas que tienen que hacer este trabajo (ver 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. En algunos casos, la universidad puede incluso negar el permiso para liberar la fuente (esto varía entre las instituciones y es muy complicado por (1))
4) Gran parte de la investigación de gráficos por computadora es realizada por corporaciones En ese caso, los autores tampoco son dueños del código y tienen que obtener el permiso de los abogados para publicar 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 Computer Graphics nunca es utilizado por nadie más. Incluso si es así, para el código de uso general, generalmente solo recibe un reconocimiento (sin valor en términos de su CV). Si tienes suerte, recibirás una cita. Los comités de contratación y las agencias Grant generalmente no se preocupan un poco si publican su código. Por lo tanto, el tiempo dedicado a preparar el código para su lanzamiento es una pérdida de tiempo que podría haberse gastado en otro documento. (Hay personas que intentan cambiar esto activamente en Computer Graphics).
6) Hay incentivos para no publicar código. El código a veces puede convertirse en empresas nuevas, obtener licencias para empresas existentes, etc. Esto financia investigaciones futuras. Todos tenemos que comer.
fuente
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 generalmente son financiados por empresas, lo que significa que son de su propiedad. En esos casos, el autor del artículo no puede mostrar el código.
fuente
Por lo general, es una cuestión de limitaciones de 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 es incluso un puñado de páginas largas, la impresión del código no dejaría espacio para la carne del artículo. Un artículo de 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 (que se puede obtener de la revista si tiene acceso; puede haber una tarifa de suscripción considerable). Algunas otras revistas requieren que los autores publiquen 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 se requiere para el envío y los autores no están obligados a 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 figurar en la mayoría de los artículos de revistas en la actualidad.
fuente
Mi experiencia como científico (5 artículos publicados) es que muchas veces la revista no requiere que se publique el código que se utilizó para crear los resultados. Eso no quiere decir que las revistas no acepten los guiones. 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 el código solo como una herramienta para expresar la ciencia, no sienten la urgencia de publicarlo también. Además, pulir su código hasta el punto en que podría publicarse requiere mucho trabajo. A un científico se le paga por hacer ciencia, no por escribir software.
fuente
La mayoría de las veces, el programa real es solo una herramienta para llegar al final, en lugar del producto por derecho propio. Dar detalles completos del código fuente sería similar a proporcionar un dibujo completo de la pluma utilizada para firmar el informe y / o los esquemas de la PC.
Dicho esto, especialmente cuando se invita a la revisión por pares, el código fuente estará disponible, aunque bajo alguna forma de Acuerdo de No Divulgación (NDA), ya que hay inherentemente Propiedad Intelectual incorporada dentro del programa.
Si está realmente interesado en el código, sugiero que el comentario de @Buttons sea el mejor consejo: pregúnteles :)
fuente
Mucho depende del propósito para el que se escribió el código. Si fuera a demostrar un punto, puede ser que no esté optimizado y, por lo tanto, no sea ideal que se libere. Si los conceptos y la metodología subyacentes son válidos, entonces debería ser posible recrear el resultado del código desde cero. Puede haber problemas de derechos de autor y propiedad también.
En principio, no es técnicamente imposible liberar el código, pero las razones por las cuales podría no ser lanzado son variadas. 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.
fuente
El documento que citó ya tiene 28 páginas, y la mayor parte del contenido trata sobre las decisiones de diseño relacionadas con la resolución del problema (indicado 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 trabajo, especialmente si tuviera que considerar el espacio que ocuparía.
No todos los casos son iguales. Algunos documentos dan código fuente, o al menos pseudocódigo. Algunos editores no lo permiten. Algunos lo permiten, pero debido al espacio, los autores no lo incluyen. Una revista donde publiqué el código fuente lo formateó como "figuras" y la versión electrónica lo tiene como datos de imagen, aunque lo envié como texto.
fuente
Los incentivos son importantes y los incentivos de los investigadores son generalmente para garantizar que puedan producir un flujo constante de documentos que se incrementen mutuamente. Los estudiantes graduados generalmente necesitan 3-5 trabajos publicados que pueden convertir en capítulos individuales de su tesis para graduarse. El profesorado junior necesita generar tantas publicaciones como sea posible antes de su revisión de la tenencia. Por esa razón, la mayoría de los trabajos académicos son realmente trabajos
n
en 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.Publicar el código fuente potencialmente permite que otro investigador en un grupo diferente produzca papel
n+1
antes de que el autor original haga o al menos produzca un artículo 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-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 tiempo 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 presión dentro del grupo de investigación para no publicar código que pueda terminar lastimando a alguien que trabajas todos los días.Con frecuencia, recibe discusiones similares en campos en los que la recopilación de datos sin procesar consume mucho tiempo y se distribuye mucho. En astronomía, por ejemplo, un grupo de investigación puede pasar años reuniendo 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 porque se vuelve demasiado fácil para otros grupos dedicar tiempo libre al tiempo invertido en recopilar los datos para obtener las recompensas de analizar realmente los datos.
Eventualmente, gran parte de este código se lanzará al igual que los datos astronómicos eventualmente se liberarán. Eso ocurre a menudo cuando el autor llega al final de esa serie de documentos o cuando la mayoría de los grupos de investigación que están trabajando en temas similares tienen motores similares, por lo que liberar el 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 dañaría al investigador científico y esos son los incentivos importantes en este caso.
fuente
Como alguien que ha hecho esto (en el lado del estudiante) varias veces en el pasado: a menudo los profesores que escriben el artículo ni siquiera ven el código fuente ellos mismos. Harán que sus estudiantes graduados escriban el código, y luego solo pedirán 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 de posgrado sin experiencia en el mundo real tienden a no ser los mejores codificadores del mundo ...
fuente
La mayoría de las razones en las que puedo pensar ya se han planteado aquí, pero pensé que agregaría dos más que realmente me sucedieron:
El diario no tiene idea de qué hacer .
Para uno de los trabajos en los que estaba trabajando, decidí que estaba absolutamente, sin ninguna duda, incluiría el código fuente (todo el punto del documento era la visualización de datos) y datos de ejemplo para acompañarlo. Entonces, junto con la presentación, 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.
Resulta que el diario solo puede tomar suplementos electrónicos si han sido calzados 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 de posgrado 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é alojándolo en GitHub y poniendo una referencia a eso en el documento, pero eso fue porque realmente quería que entrara el código. Puedo ver, especialmente porque la mayoría de las personas en mi campo no usan algo como GitHub, solo decidiendo que el esfuerzo no valdría la pena para un puñado de personas que lo descargarían y que podrían enviarme un correo electrónico de todos modos si realmente lo desean.
El diario simplemente no está interesado.
Inserté algunos pequeños detalles sobre el código en sí mismo en un documento a pedido de un revisor, pero es una revista clínica (léase: nadie codifica), no permite suplementos electrónicos y, nuevamente, agregar el código fuente probablemente habría sido más problemas de los que valió la pena.
Irónicamente, si alguien fue a buscar el código, es (o pronto lo será) de código abierto, pero ya estaba corriendo al borde de 'Esto está creciendo distraídamente técnico' y decidí que el resumen, 'haga feliz al crítico' 'mencionar era todo lo que iba a hacer.
fuente
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 es importante ... ¡el código fuente definitivamente debe estar disponible! Cuanto más dependan los resultados de la implementación o de los métodos computacionales, más importante será publicar el código fuente.
fuente
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 relativamente pocas en comparación con las personas que usan ese código. "Código personalizado escrito en casa" no significa que los autores lo hayan escrito; podría ser el código de un compañero para que los autores no puedan 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 público (parcialmente) antes.
Incluso si la revista donde está destinada la publicación de código no se opone a que el código haya estado disponible públicamente anteriormente, la preocupación pura del supervisor (o alguien en la oficina de IP) puede ser suficiente para detener la 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 deben 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 disponibles públicamente , pero sin duda estarán disponibles a pedido.
(La visión tradicional sobre qué es la reproducibilidad en química corresponde más bien a una descripción (posiblemente pseudocódigo) del algoritmo que a enviar el 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. Por lo tanto, 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.
fuente