¿Se puede revisar y publicar el software de código abierto?

Mi colega y yo hemos desarrollado una herramienta de software y pretendemos lanzarla como código abierto.

Esta herramienta es específicamente para tareas en mi campo, pero creemos que sería útil para la comunidad en general. Nuestra institución nos permitirá liberarlo siempre que obtengamos el crédito apropiado.

Por lo tanto, deseamos publicarlo en revisión por pares. ¿Está disponible la publicación revisada por pares de software específico de dominio? Si es así, ¿qué se requiere para publicarlo?

En este caso, tenemos la intención de publicar el método y la herramienta por sus propios méritos sin datos de respaldo o una aplicación.

Si cree que sería útil, ¿qué le parece dedicar algo de tiempo a las aplicaciones? Realmente no estaba investigando, más como "aquí hay una lista de 5 problemas de la literatura de las últimas décadas donde aplicamos nuestra herramienta y fue mejor porque...".
Puede que le interese el Journal of Open Source Software: joss.theoj.org
Consulte la lista de posibles lugares aquí: scicomp.stackexchange.com/q/660/30021
También puede consultar este: journals.elsevier.com/software-impacts
@Dirk En este caso, es difícil, ya que es una herramienta para hacer algo diferente para una técnica experimental nueva pero popular. Planeamos publicar los datos por separado y citar nuestro software. Creemos que otros también podrían encontrarlo útil. No puedo discutir más detalles sobre trabajos inéditos sin el acuerdo de mis coautores.
Misma publicación en bioinformatics bioinformatics.stackexchange.com/q/11313/131

Respuestas (5)

Sí, se puede publicar software de código abierto. Lo que se requiere varía según el lugar.

Hay revistas generales que se centran en el proceso del software . La idea es fomentar que un mejor desarrollo de software obtenga el crédito que se merece. Ejemplos de revistas con este enfoque son Journal of Open Research Software y Journal of Open Source Software .

Luego están las revistas de dominio específico que tienen políticas de papel de software específicas. Un ejemplo serían las Revistas de la AAS que afirman

Las revistas AAS reciben artículos que describen el diseño y la función del software de relevancia para la investigación en astronomía y astrofísica. Dichos artículos deben contener una descripción del software, sus características novedosas y su uso previsto. Dichos artículos no necesitan incluir resultados de investigación producidos usando el software, aunque incluir ejemplos de aplicaciones puede ser útil.

(Énfasis mío para vincular a un punto en la pregunta original)

Buena respuesta. Siéntase libre de copiar la lista de revistas de mi respuesta también si desea ampliar su respuesta.

Sí. El software se puede publicar como una herramienta de código abierto con un proceso de revisión por pares. Existen varias revistas académicas de estilo tradicional. Dado el perfil del OP , aquí hay algunas revistas que publican paquetes R, herramientas genéticas o software ambiental:

Además, algunas agencias gubernamentales tienen procesos formales de revisión por pares para el software y el código para publicación pública (p. ej., el Servicio Geológico de EE. UU ., el Departamento de Energía de EE. UU. ).

Vine a esta publicación específicamente para mencionar Journal of Statistical Software.
@MichaelLugo Escuché cosas buenas al respecto, pero antes me rechazaron por estar fuera del alcance de JSS para otro trabajo. No puedo discutir los detalles de trabajos no publicados, pero esta herramienta no es de naturaleza estadística, por lo que no encajaría allí.

Seguro que es publicable. Escribe un documento que detalla qué hay en el código, cómo usarlo, ejemplos, problemas potenciales, etc.

Aquí hay un ejemplo , y aquí está el enlace de Github al código fuente.

SoftwareX :

SoftwareX tiene como objetivo reconocer el impacto del software en la práctica de investigación actual y en los nuevos descubrimientos científicos en casi todos los dominios de investigación. SoftwareX también pretende enfatizar la importancia de los desarrolladores de software que son, en parte, responsables de este impacto.

Con este fin, SoftwareX tiene como objetivo apoyar la publicación de software de investigación de tal manera que:

  • El software recibe un sello de relevancia científica y se le proporciona un reconocimiento de impacto científico revisado por pares;
    • Los desarrolladores de software reciben los créditos que se merecen;
    • El software es citable, lo que permite aplicar las métricas tradicionales de excelencia científica;
    • Las trayectorias profesionales académicas de los desarrolladores de software reciben apoyo en lugar de obstáculos; El software está disponible públicamente para su inspección, validación y reutilización.

La respuesta a su pregunta en sentido estricto es "sí". Sin embargo, me gustaría responder lo que percibo como la esencia de su pregunta. Porque la respuesta corta a eso es sí, pero .

¿Software o método?

Básicamente, la situación, tal como la infiero, es: tienes algún problema. Por lo general, surge de algunas aplicaciones, como la biomedicina, las ciencias de los materiales, la química, etc. Resolver el problema puede implicar algo de trabajo de laboratorio, pero no es suficiente. Para resolver realmente el problema, necesita algún software. Ahora, usted escribió el software y pregunta cómo se puede publicar.

El punto principal es que la informática clásica y los campos cercanos (software matemático, por ejemplo) se han centrado durante mucho tiempo en los métodos . No se trata de por qué, no se trata de cómo técnicamente, se trata de la forma teórica de resolver el problema. Ahora bien, esto no significa que no haya implementación, respaldando la teoría. En la abrumadora mayoría de los casos hay uno. Pero publicar el código, especialmente como una entidad separada, es un desarrollo relativamente nuevo (¡pero bienvenido!).

Hubo momentos en que la reproducibilidad en ciencias de la computación significaba: tome un estudiante de licenciatura, entréguele un trabajo, déjelo implementarlo durante meses, ahora tiene una implementación que puede comparar con su propio enfoque.

Los lenguajes mueren, pero las ideas no.

Puedo nombrar dos razones comprensibles para una mentalidad tan extraña (para los extraños) de un científico informático. En primer lugar, durante mucho tiempo la idea real de qué hacer, lo que podemos formular de manera concisa como un algoritmo o describir en un documento, fue mucho más breve que el código de bajo nivel real que implementa la idea. Hay mucha contabilidad, gastos generales técnicos y tal vez incluso algunos trucos ingeniosos, interesantes por sí mismos, pero que no contribuyen a la idea general de alto nivel. La ciencia de la computación se enfocó y en parte aún se enfoca en tales ideas a vista de pájaro, aunque hoy en día también se pueden publicar trucos ingeniosos.

La segunda razón es que los detalles prácticos de la implementación envejecen sin gracia. Esto incluye algunas soluciones técnicas y también el lenguaje de programación en el que está escrita la implementación. Extendiendo un poco, es más fácil y más eterno describir una forma de calcular una descomposición de valor singular en términos de cálculos de álgebra lineal que una antigua implementación de DBDSQR en Fortran.

La tendencia descrita anteriormente está cambiando. Veo más y más documentos que se refieren a los repositorios de GitHub con el código que los acompaña. Esto es bueno. Sirve a la reproductibilidad. Menos estudiantes de licenciatura pobres que tienen que implementar los documentos de otros. Pero lo que la gente todavía publica en CS son más descripciones de alto nivel, consideraciones teóricas y resultados de evaluación práctica. Pero no el código como es.


Tenga en cuenta que sus colegas biólogos, geólogos, químicos, etc., podrían apreciar muy bien el producto de trabajo. "Clone este repositorio de github y conecte sus datos" funciona de maravilla.

Aún así, si hay un alto grado de novedad científica en su software y si desea publicarlo en un lugar de informática en un sentido amplio (hay algunas revistas para publicar código, como dicen otras respuestas), podría ser mucho mejor apagado, si publica el método y acompaña la descripción del método con un enlace a GitHub , donde se deposita el software real.

Ah, y está el tercer componente: los datos. Una vez más, hay algunas revistas en las que puede publicar conjuntos de datos científicos. Pero el desarrollo general es colocar los datos en un repositorio (como Dryad o Zenodo, en realidad es una pregunta aparte) y vincularlos en el documento.

En este caso, es una herramienta limitada pero útil para reformatear datos para ciertas aplicaciones. No es un método novedoso por ningún tramo de la imaginación. De ahí mi vacilación, ya que, por supuesto, se pueden publicar nuevos métodos y datos. No soy un científico informático y espero que sea mucho trabajo satisfacer a los revisores de una revista de CS que tienen requisitos muy diferentes a los de mi campo (ni los lectores en mi campo estarían familiarizados con la revista).