reproduciblity, codes, and disclosure
There has been significant discussion about reproducing computational results
from the literature, code copyrights, and distribution of source codes.
Below I describe a possible "work around" that may satisfy developers
Most individuals that wish to receive source code probably fall in three
categories: 1) code scavengers, 2) code "extenders". The scavenger
use subroutines available in other codes to ease the construction of his own.
In computational chemistry this is probably done very often (i.e. swaping
two electron integral codes etc.) without proper recognition of the original
author. Developers frown upon this practice and with good reasons.
The code "extender", as I define him/her, simply wishes to add modules
an existing code without altering it (except for the proper interface) or
use new parameters within the coded model. It is in the interest of developers
and users to encourage this practice with proper citations. But how are
developers going to do this without distributing their code? Here is my work
Consider the case of MATHEMATICA from Wolfram Research (I am certainly not
promoting their product!). The code is not distributed, but two avenues
exist to "extend" the code. One, is its built-in programming laguange.
The seconde is its standard interface called MATHLINK. Building a script
language is alredy being done for some commercial packages in molecular
modeling (i.e. Hyperchem etc), although many are limited to repeating their
Graphical Interface functions within a command line mode of operation.
MATHLINK is more interesting! It allows a user to write any code in any
language (although C and Fortran are easier to implement) and interface it
to MATHEMATICA. A user can access from his program any module from MATHEMATICA
that developers have allowed access. Also, the converse is true! As an
example, Spyglass's Transform v. 3.0 for Unix systems is interfaced with
MATHEMATICA in this way. By doing this the developers of Spyglass can
concentrate in coding for image presentation rather than the mathematical
transformation of images since this can be handled by MATHEMATICA.
Moreover, users have all the feature of MATHEMATICA to their disposal.
It is possible for a developer to generate such "linking programs" so
the code "extenders" may expand the functionalities of a program
messing up or distributing their code. If they don't want to build their own
"linking" standard and languange, they can use MATHLINK.
For those, that wish to use their own parameters, an implementation that reads
tables of parameters rather than "hardwiring" them into the code is a
mercie -x- at -x- cumc.cornell.edu
ps. I have found in my work that programming in Mathematica can help me
concetrate in the structure of the code. This makes subsequent programming
in C or Fortran much easier.