Blog de noticias de astronomía - Desde Buenos Aires, Argentina
¡Que no cunda el pánico!
"¿No es suficiente ver que un jardín es hermoso sin tener que creer que también hay hadas en el fondo?" - Douglas Adams, La guía del autoestopista galáctico.

16/12/15 - DJ:

Depurando los códigos en astronomía

T.E.L: 4 min.

En un reciente sondeo de más de 1100 astrónomos, casi la mitad dijeron haber recibido poco o ningún entrenamiento en software, aunque el 90% escribió algún programa. Jon Cartwritght en Physics World reporta las últimas tendencias en los lenguajes de programación y su uso profesional.




Lo que sigue es una traducción libre del artículo en inglés publicado en Physics World, diciembre 2015, por Jon Cartwritght, periodista freelancer.

Ivelina Momcheva se percató de que perdía mucho de su tiempo programando. Sea para analizar datos o para producir gráficos para papers, ella se sienta a escribir en su teclado de la Universidad de Yale línea por línea. Aunque es una parte muy importante de su trabajo, nunca recibió una educación formal en desarrollo de software.
"Desde que comencé la carrera de grado, mayormente he sido autodidacta", explicó. "Tomé algunos libros recomendados, algunas clases online y miré códigos escritos por mis colegas", agregó.

Su colega, Erik Tollerud tiene una historia algo diferente. Hijo de un profesor en ciencias de la computación, realizó un curso antes de la universidad. Con ese antecedente, estuvo mejor preparado que Momcheva, aunque quizás no por mucho, para una vida en la astronomía moderna. ¿Son estos dos ejemplos que se puedan extrapolar? En diciembre del año pasado el par asistió a la conferencia .Astronomy 6 (dot astronomy) en Chicago, donde se encontraron a muchos de sus colegas debatiendo cómo usan el software y sobre el actual nivel de enseñanza. Como no había consenso, decidieron investigar con un sondeo informal.
Los resultados, basados en respuestas de más de 1100 astrónomos de todos los niveles, revela lo mal preparados que están los profesionales en esta materia. La gran mayoría (90%) dijeron escribir al menos una parte del software que usan, pero menos del 10% dijo haber recibido un entrenamiento "importante" (substancial).
Cerca de la mitad dijo haber recibido poca capacitación, mientras 43% señalaron que no habían tenido ninguna.

"Uno de los puntos a los que queríamos llegar con el paper es que hay muy poca enseñanza para algo que representa una parte importante para nuestros trabajos, y eso es un problema", explicó la astrónoma.

Fig. 3 del paper
Respuestas a la pregunta: ¿Cuál de estas opciones es más común en su trabajo?
-Mayormente uso software propio
-Mayormente uso software escrito por otros
-Algo en el medio de las dos anteriores
Las respuestas fueron divididas por niveles de carrera

Fig. 6
Respuestas a la pregunta: ¿Ha tenido entrenamiento formal en desarrollo de software: Sí, mucho; Sí, poco; No. Subdivididas por grado de carrera.

Lenguajes
Se podría argumentar que la falta de enseñanza no es un problema. Los científicos han sido siempre rápidos en usar computadoras en beneficio de su trabajo, y hay una larga historia que indica que aprenden sobre la marcha, sin el soporte de clases formales. ¿No será esa la mejor manera de aprender, al igual que las personas aprenden idiomas foráneos en su país nativo? Tollerud no reconoce la comparación.
"A pesar de la palabra 'lenguaje', la analogía no es tan buena con el idioma, pero sí lo es con las matemáticas". A diferencia de lo que a veces ocurre con los idiomas, no se aprende cálculo y álgebra linear "sobre la marcha".

Según este trabajo, dos terceras partes de los astrónomos usan Python, mientras 44% usa IDL, 37% C o C++ y 28% Fortran. "Históricamente, un montón de código científico estuvo escrito en Fortran. Y aunque ahora está generalmente reconocido como un lenguaje más dificultoso para trabajar, todavía se usa por décadas de desarrollo puesto allí. No quieren cambiar por algo nuevo", explicó Tollerud.

Pero el académico admite que lenguajes como Fortran, que son más parecidos al actual código máquina, -lenguajes de bajo nivel- pueden producir programas más rápidos.

Jonathan McDowell, un astrofísico en el Centro Harvard-Smithsonian en Cambridge, concuerda. "Los ingenieros de software a veces tratan y nos empujan hacia los últimos lenguajes que en 10 años serán olvidados". McDowell es desarrollador de software para el Observatorio Chandra y agrega: "Fortran podrá ser un lenguaje antiguo en el resto del mundo, pero para nosotros está vivo y por un montón de razones".

Python vs IDL
El diagrama de Venn muestra que el 86% (984 respuestas) de los encuestados usan tanto Python como IDL. De ellos, 764 usan Python y 497 IDL. Ambos son elegidos por 277, 25% del total. Esto indica una superposición: 36% de los usuarios de Python también usan IDL y 55% de los usuarios de IDL también usan Python. Finalmente, 158 participantes (14% de la muestra) no eligen ninguno de esos lenguajes.

Para facilitar el entendimiento del conjunto de datos multidimensional sobre cómo se usan varias herramientas, los autores proveen una visualización interactiva, accesible desde el enlace indicado abajo.

Enseñanza requerida
McDowell concuerda con los autores del paper sobre la inadecuada educación en software. "Una rápida mirada a muchos códigos de astrofísicos muestra cuán profunda es la necesidad de cierto entrenamiento formal. El código astronómico es descuidado, enredado y con frecuencia atascado en los estilos de 1960s". Piensa que los cursos debieran enfocarse a "cosas simples": ciclos, subrutinas, estilos establecidos. "La mayoría de los astrónomos sólo necesitan lo básico, porque no van a intentar hacer nada súper lujoso".

Los créditos
El artículo da cuenta de talleres llamados "SciCoder" y organizaciones como Software Carpentry que realizan talleres para científicos de todas las disciplinas. Pero mucho de tal esfuerzo se basa en tomar la programación más seriamente como parte de la ciencia moderna, no sólo hacer mejores programas, sino dar apropiado crédito a la producción informática. "Hay menos reconocimiento del software como algo que es crítico para hacer ciencia, que en la instrumentación", comentó Tollerud. Y agregó: "A pesar de que, en la astronomía moderna, lo es".


Viñeta en XKCD.com usada en el paper
Traducción:
Él: -Ten en mente que soy autodidacta, por lo que mi código podría ser un poco desprolijo.
Ella: -Déjame ver, estoy segura que está bien.

Ella: ...Wow. Esto es como estar en una casa construida por un niño usando un hacha y un dibujo de una casa.

Ella: -Es como una receta de ensalada escrita por un abogado corporativo usando un teléfono con autocorrección que sólo sabe fórmulas de Excel.

Ella: -Es como alguien que tomó una transcripción de una pareja discutiendo en Ikea y lo editó en forma aleatoria hasta que compiló sin errores.
Él: -Bueno, leeré una guía de estilos.




Fuentes y enlaces relacionados
El artículo aparece en Physics World Focus on Astronomy & Space
http://live.iop-pp01.agh.sleek.net/physicsworld/reader/#!edition/editions_Astro-2015

Software Use in Astronomy: an Informal Survey
Ivelina Momcheva, Erik Tollerud
arXiv:1507.03989 [astro-ph.IM]
http://arxiv.org/abs/1507.03989

Disponible en Authorea: https://www.authorea.com/users/10533/articles/18046
Visualización interactiva: http://eteq.github.io/software_survey_analysis/software_tools_heirarchy_d3vis.html


Sobre las imágenes

Figuras del paper antes citado y viñeta de XKCD.com: https://xkcd.com/1513/

Imagen inicial: Combinación de imágenes:
-Nube de etiquetas de lenguajes, del artículo de Physics World
-Nebulosa Helix: HubbleSite
-Imagen de visualización de Momcheva-Tollerud.

No hay comentarios.:

Publicar un comentario