Subject: Collaborative software development

From: Murray-Rust Dr P <[email-masked]>
Date: Wed, 23 Feb 1994 18:55:18 +0000 (GMT)

I gather you have just had a discussion on this newsgroup about the use of
C++ - we have had a similar one on bionet.software.  I'm not intending to
re-open the discussion (which I didn't read at the time, but have had
mailed to me), but to ask for help from those of you who believe in a
collaborative, tool-based, approach to software development.

	I believe that it is now possible to get a relatively unstructured
group of netters who, communally, develop fundamental tools (not programs)
for certain parts of scientific computation (e.g. bioinformatics and the
related part of computational chemistry).  I hope to set this going in the
next week or two by posting (probably at Daresbury) various tools that I
have written.  Hopefully these can act as a nucleus which will accrete 
other voluntary contributions.

	There are several categories of tools - not all yet very well 
populated - such as:
	a C++ class library
	tcl scripts and tk gui's
	tools for using CIF, not just for crystallography but as a generic
		mechanism for handling many file types and creating simple
		*portable* container classes (specifically arrays and 
		heterogeneous compound objects)
	navigational aids (esp. html/www)

In addition it would be useful to have:
	collections of read-only data (such as the connexion tables for
		amino acids; atomic weights, etc)
	manuals and examples of well-defined file formats

	The present major component is a set of C++ routines for some
basic aspects of bioinformatics.  Examples are:  reading/writing various
file formats, PDB, CIF, sequence entries; molecular geometry; and a
considerable amount of basic housekeeping (dynamic arrays, text parsing,
etc)).  This has been designed (or at least has evolved!) to support
extensibility in a distributed community.  It also has an automatic
documenting system which produces structured html pages from the *.h files
(if written in an appropriate manner) and a large set of test routines and
examples. 

	I'd be very grateful for anyone who would like to test a beta
version of this.  It's been developed on g++, CC (cfront on IRIS), and
Borland 3.0.  My experience is that C++ is not totally portable at
present, especially in *loading*.  I have *not* used templates since
although I can get them to compile and run sometimes, I find it difficult
to get the same code running on all three platforms.  (I use the macro
method instead).   Besides helping with installation it is important to 
get feedback on whether the style and documentation are helpful.

	A major concern I have is for navigation.  I have sometimes found
other people's C++ libraries often take quite a bit of time getting into. 
Therefore the use of html (you will need a clinet/browser such as mosaic, 
though lynx would do) is critical. 

	I am also thinking about the best "rules" or constitution for a
self-help exercise like this.  Control of the namespace is important since
otherwise the project degenerates into incompatible regions, but informal
extensibility is needed or the project won't live.  I have at least two
experiences which make me optimistic that it will work. The first is the
way that many computational groups flourish (I'm partcularly familiar with
tcl.comp.lang where high-quality tools are developed and added at frequent
intervals); and secondly the development of the STAR/CIF dictionaries and
tools by the crystallographic community. 

DISCLAIMER:
	I have used these tools, inter alia, for teaching at MSc level at
Birkbeck College.  Neither Birkbeck, nor my employers Glaxo, is formally
responsible for the contents of this message, nor for the software
described, though they are aware of my intention to make them public. 

------------------------------------------------------------------------------
Peter Murray-Rust                  | "Nothing exists except atoms and empty
[email-masked]                  | space; all else is opinion" (Democritos).
Protein Structure, Glaxo Research & Development, Greenford, MIDDX, UB6 0HE, UK
------------------------------------------------------------------------------