On Tue, May 29, 2012 at 11:14 PM, Yaroslav Halchenko <email@example.com>
Exactly! And there is more to it. Someone bold could event exaggerate
that requiring "open code" on its own is **"useless"** besides for being
an "ideal description of the method implementation". Why "useless"?
Because in majority of the cases "open code" will hardly be usable by a
considerable part of scientific community for one reason (e.g. as you
pointed out commercial base) or another. Quite often simply
because that code was not created to be used by others.
+1 Very good point.
Open Code is just a Beginning.
I have indeed seen a lot of "research" code
that I'll be afraid to use... :-)
and a lot of code, that just plain doesn't work...
We need to promote a culture of scientific programming in which
researchers adopt sound software development practices, and
learn about software development practices that are rooted in
Researchers tend to make the mistake of:
"Not taking the time to go fast"
As it is nicely put in the "Clean Code" book by Robert Martin.
When it comes to chose our daily practices of software development
it is too common to write code: "just for the next paper".
A more modern culture of sound software development practices
needs to be grown in the field of research. In particular, Unit testing
(which is indeed basic reproducibility), revision control, tutorials and
Great work in this front is done by the Software Carpentry:
We need to figure out how to further scale this type of initiatives.