David Mathog (mathog at seqvax.caltech.edu) wrote:
: In article <3aq9vq$nqb at decaxp.harvard.edu>, robison at lipid.harvard.edu (Keith Robison) writes...
: >
: > Also, I really think there are limits to how much OOP-techniques
: >can help you in a non-OOP language. For an example, I offer you the
: >NCBI Toolkit. A very nice piece of work -- powerful, reasonably well
: >documented, showing clear OOP but written in C. Now both of you
: >out there who use it regularly, raise your hands :-)
: Wrong example! Netentrez includes great swaths of that code, and a lot of
: people use it. A version of the NCBI toolkit was available for VMS/VAX,
: VAX C 3.2 (not ANSI C), with Decwindows/Motif 1.1 (X11R4). I needed one
: for VMS/AXP, DEC C (ansi C), with DW/Motif 1.2 (X11R5). It took about 2
: days of work, total, to redo the build procedures and get it all running.
: It took about two weeks elapsed time, partially because I needed
: information back from the NCBI, and partially because I was working on
: other things at the same time. This was really very easy work, and it was
: so *solely* because the toolkit is written in ANSI C. In all of that code
: only a couple of lines of source code had to be changed. The NCBI was
: modifying the toolbox even as I was porting, so a few errors due to
: version inconsistency were also present. Admittedly, the build files needed
: major revisions due to the change of compiler, X11 version, and the NCBI's
: ongoing reorganization of the code.
I guess I didn't make myself clear why I used this as an example. How
many pieces of non-NCBI code out there that use the toolbox? It's a great
toolkit and runs on everything, but it is also a mountain to learn
and is not always internally consistent in its design.
My argument is that if it were in C++ rather than ANSI C, it would
be easier to learn and digest because so much more of the design would
be obvious (and compiler enforced!).
Keith Robison
Harvard University
Department of Cellular and Developmental Biology
Department of Genetics / HHMI
robison at mito.harvard.edu