Subject: Re: CCL:CASP vs. The Tower of Babel

From: Konrad Hinsen <[email-masked]>
Date: Tue, 22 Sep 1998 16:38:41 +0200

> *Nothing* like this happens in my current field.  I'm not sure why,
> but I have a few guesses.  For one thing, programs are a pain to port
> across systems (portability of code is not a criterion for

I haven't yet met a program with serious portability problems; most
people use their own programs on more than one machine, so portability
is important even for the original author himself.

> publication).  More important, in most cases I don't want the program
> just to use as a black box.  On the contrary, my interest in the
> program is usually in how it implements a model; I want not only to
> reproduce published results, but also to tweak the conditions, and to
> extend the experiments.  This invariably requires that I understand

That's a real problem. Writing readable and modifiable code is
difficult, and requires substantial experience in software
development. Few scientists have this experience, or are willing to
acquire it. There is also no external incentive; programs do not
figure on a publication list, much less with an indication of their
quality.

A typical argument for keeping the status quo is "scientists have to
learn so much already, there is no time to learn software development
as well." Considering that software development in computational
chemistry is the equivalent of experimental techniques for the lab
scientist, this is a strange point of view. Would any experimentalist
be taken seriously if he publicly refused to learn the fundamentals of
his techniques? I doubt it.

> 5 years ago half a world away.  (Again, clarity of code is, for the
> most part, not a criterion for publication).  So, typically I conclude

Indeed. One solution might be program publishing in a similar way to
paper publishing: programs would be submitted to publishers who let
external referees judge the quality, including modifiability, before
accepting the code for a collection of "trusted code". However, where
would these referees suddenly come from?

> that either I re-implement the idea from scratch, which is usually
> something I can't afford, or else I drop the matter altogether.

I'd like to know how many potentially good ideas were never tried
because of this barrier!

Working in method development myself, I encountered exactly the same
problems, and finally I decided that starting from scratch was the
only option. Of course I was determined to do it only once, and
moreover to do it right (perhaps I am an optimist). The result of this
effort is the Molecular Modeling Toolkit, available at
http://starship.skyport.net/crew/hinsen/mmtk.html (for anyone, you
don't even have to ask!). A few projects later, I can conclude that it
was well worth the effort; I can implement new ideas very rapidly. It
may not be as transparent for someone else, since the developers'
guide is mostly yet-to-be-written, but that will change some day, once
I manage to get a real job ;-)

The essential feature of this toolkit is a library approach: there is
not a "program" (read: black box), but a set of largely independent
modules implementing specific techniques. For modifying or extending a
particular feature or technique, there is no need to understand the
rest. Most new techniques (e.g. new force fields or new integrators)
can in fact be implemented without ever modifying an existing program
file.
-- 
-------------------------------------------------------------------------------
Konrad Hinsen                            | E-Mail: [email-masked]
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.55.69
Rue Charles Sadron                       | Fax:  +33-2.38.63.15.17
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais
-------------------------------------------------------------------------------