Monday, October 18, 2010

Why scientific programming does not compute

From Nature.com (Oct. 13):

Researchers are spending more and more time writing computer software to model biological structures, simulate the early evolution of the Universe and analyze past climate data, among other topics. But programming experts have little faith that most scientists are up to the task.

A quarter of a century ago, most of the computing work done by scientists was relatively straightforward. But as computers and programming tools have grown more complex, scientists have hit a "steep learning curve", says James Hack, director of the US National Center for Computational Sciences at Oak Ridge National Laboratory in Tennessee. "The level of effort and skills needed to keep up aren't in the wheelhouse of the average scientist."

As a general rule, researchers do not test or document their programs rigorously, and they rarely release their codes, making it almost impossible to reproduce and verify published results generated by scientific software, say computer scientists. At best, poorly written programs cause researchers such as Harry to waste valuable time and energy. But the coding problems can sometimes cause substantial harm, and have forced some scientists to retract papers. [read more]

The moral of this article is that just because you are smart in one area does not mean you are smart in other areas. Even Einstein had trouble figuring out his taxes.

Having a computer science degree I was taught to document any procedure especially document why a routine was written. No programmer likes to do this but it is important if any other programmer after you is going to understand your code. Especially, if he or she is going to update it later on.

Testing the program is really important. You want the pgm to run correctly and not produce erroneous errors. It's too bad that Congress does not think hard about the side effects of the bills they pass. If you think about it legislation or laws in a way are like the program of the country. Wrong laws make the country work ineffectively. But I digress...

A computer scientist in the article did a survey of 1,000 scientists in different fields. He found out that only 47% of scientists have a good understanding of software testing. They should if they are going to write software to test a theory. The theory and the software program are equal to one another. You want the pgm to be solid as possible or it makes your theory look weak.

No comments: