CCL: Science code manifesto



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