CCL: Science code manifesto
- From: Alcides Simao <alsimao]=[gmail.com>
- Subject: CCL: Science code manifesto
- Date: Tue, 18 Oct 2011 18:42:03 +0100
Hello all!
The first time I saw Brian posting the very first e-mail about
this, I had to laugh. Why? Because I knew that this 'philosophical' mail
would endure much past any mail regarding any known molecule to mankind.
I see a lot of dispersed opinions. Some say that the code should be free.
Others, that it should be commercial. Some say that the methods are explained.
Some don't say nothing. Others say it all. and so on...
Well... I thought a bit about this and I came up with a laughable idea that may
actually work. It won't be as open as one would like, however, it would give
a very good insight on how the programs work.
The system is based on the
following premises:
a) Nor Physics nor mathematics can not be 'patented', hence all
mathematical engineering used in a program must be accessible and
peer-reviewed
b) Programs are based on subroutines - one would suffice to
know how the subroutine works - the code itself doesn't matter
c) a decision tree that describes how the program works for each and every
soubroutine, describing all the math done step by step, and intelocking it with
the program's calculation 'run' .
It may indeed be laughable,
maybe childish, but let us remind of something. Commercial programs are built by
programmers (mostly!). Programmers have a different toolkit that a chemist have.
So, programing styles exist, however it is not the programming style that we are
after, but the way the program itself works.
Some companies will, obviously, defend their interests by stating that the
code is subjected to copyright. But you can't copyright mathematics and
physics. So, for a full revision of the code, I believe that a decision tree
would suffice to understand what is being done. It's a way to go around the
copyright problem. It's like having a map of the program instead of the
program itself.
for instance, if someone uses Krylov's subspaces to decompose a matrix,
instead of Gauss-Siedel's, it may speed up a calculation in a extreme
fashion! that fact allows to understand, for instance, what is the reason behind
a delay in the calculation.
I believe that, in the spirit of fairness, this information is the LEAST
and, sincerely, less doubtful way to understand how a program works. Of course
that a lot of road must be covered, but I believe that this is a good way to
lead us to the right spot.
Thank you for the time you spent for reading the email posted by a guy with
a running nose! Goddam weather!
Best,
Al