The CVS ``diffmic'' archive contains both complete programs,
and subroutine libraries. Some of the complete programs
pre-date the availability of the subroutine libraries, so
naturally they don't make use of the libraries. Nevertheless,
it is hoped that the subroutine libraries described in
Sec. 2.4 and Chapter 6
will form the basis for at least some of the future programming
efforts for the following reasons:
- You can save yourself a lot of work by using already-tested
routines for many things, rather than having to write everything
yourself.
- The routines can be recompiled on various machines, so that
a main()
program written by a person with one type of system could
be compiled and run by someone else on an entirely different
system. These systems might include Windows laptops using
the http://www.cygwin.comCygwin Unix-like environment and
FFTW3 for Fourier transforms,
to Apple clusters using the MPI-enabled dist_fft
library for Fourier transforms.
- Improvements made in various subroutines will immediately
become available to all programs that use the subroutine
with no effort beyond a simple recompilation. As an example,
the subroutines recently gained MPI-compatibiliy which now
automatically translates to any program that makes use of them.
This is the approach that has been used with great success by
the protein crystallography community in the
CCP4 project1.1, where they
state ``The components of the whole system are thus a
collection of programs using a standard software library to access
standard format files (and a set of examples files and documentation)
available for most Unix operating systems (including Linux), as well
as Windows and Mac OS X.''
Microscope User
2008-11-25