Un interessant article de Barrapunto tracta el tema dels errors a la computació científica, deguts a la mala programació. Tot prové d’uns errors en un codi de dinàmica de proteïnes que ha fet que calgui retractar alguns articles. Diu Barrapunto que
… poca pericia de los programadores puede provocar que los resultados sean erróneos (errores que a veces se detectan pero que en otros casos pasan inadvertidos aun tras la revisión por pares de las revistas). Las razón de este problema: la falta de formación de los científicos (que son químicos, biólogos, físicos… carentes de fundamentos sólidos en algorítmica y en codificación), quienes no documentan apropiadamente el código ni lo suelen liberar, impidiendo así que los estudios sean reproducibles.
Un caso dramático que se cita en la noticia es el de Geoffrey Chang (Scripps Research Institute de La Jolla, California). Debido a que un programa escrito por terceros cambiaba el signo de algunos datos, predijo unas estructuras de proteínas totalmente incorrectas. A resultas de este hecho el grupo tuvo que retractarse de cinco artículos publicados en revistas punteras (Science y PNAS, entre otras).

D’aquest tema en parla Nature, que fa diferents suggerències, com per exemple documentar molt bé el codi.
Crec que s’exagera una mica, i que el principal problema està en la utilització de codis antics per part de gent nova i sobretot diferent de la del grup d’origen. Nosaltres ens hi trobem, a vegades. Però la rel de la qüestió la trobo sobretot en el propi article: el codi generat ha de respondre a fòrmules i algorismes publicats en revistes reputades, de tal forma que sigui possible replicar els resultats obtinguts escrivint un programa diferent, poser en un llenguatge diferent.
Al nostre grup ho hem fet, i ens ha funcionat.
A més, quan es desenvolupa programari nou, excepte en alguns casos molt concrets, és possible comprovar els resultats per vies alternatives, per exemple, en casos senzills fer servir solucions analítiques ò mètodes més lents però dels quals se’n coneix la solució. No hauria de fer-se servir codi que no estigués comprovat.
I si passa el que ha passat, que es troba un error al codi generat, doncs és l’autor el qui s’emporta el descrèdit. Al final, es tracta de l’aplicació del mètode científic: si no es pot replicar en altres llocs, és que alguna cosa falla.
I per això és important que el mateix mètode, el mateix algorisme, la mateixa col.lecció de sistemes de prova-test siguin replicats per un altre codi diferent, i que portin a una verificació del mètode computacional i del programa escrit.
En els diferents articles que hem publicat on hem desenvolupat codi, sempre ho hem intentat fer així. I en tot cas, hem analitzat els resultats obtinguts i ens hem preguntat el per què sortíen aquells resultats i no pas uns altres. Potser no es pot eliminar totes les fonts d’error en programar per primer cop, però al menys es poden mirar de reduir al mínim.