David Mathog (mathog at seqvax.caltech.edu) wrote:
: >Looking the gift horse straight in the mouth...
: A few responses to the responses (names deleted from all quotes).
: The part that seems to have rubbed the most people the wrong way is:
: 1. It is written in ANSI C or Fortran 77 (but NOT both).
[...]
: >Any standards run the risk of being straightjackets.
True, but well defined and well thought out standards should be building blocks
which can be extended in a compatible fashion.
[...]
: I used to agree with the idea that it was OK to write code for research
: projects in a nonportable manner and patch them up later. Unfortunately,
: sad experience has shown that the "patching up" can be next to impossible.
It can be done (and at least one commercial software house essentiallly makes
its living in this way), but it is lot easier if the code is well written
and portable from the start!
[...]
: >Anything which can be expressed in C++ can be expressed in C
: >(which is what Cfront does), but good C++ is much more readable,
: >reusable, and maintainable.
Only if you're familiar with C++ syntax! I've been programming in C for
several years and thought about moving to C++, but the effort involved
simply doesn't seem worth it. I have built up an extensive library of routines
for protein structure handling in C; they are all modular and, in that sense
can be treated as `objects'. Recoding all this as C++ classes would take
me ages! If C is well written in a modular form, it can be just as readable,
reusable and maintainable as C++. Object orientation is a methodology
which can be applied (in some fashion) to any programming language.
Readable, reliable, reusable and maintainable code comes from carefully
thought out programming and testing. It is perfectly possible to write
unreadable, bug-filled, un-reusable C++ just as it is FORTRAN of C!
[...]
: Second of all, C++ is a bit of a special case. So long as the developer
: has the tools to convert their C++ code to ANSI C, and at least the C code
: is distributed, then go ahead and write in C++. However, C++ compilers
: are far rarer beasts than some of you would believe, and so C++ code should
I don't think that's true with the availability of the Gnu C++ compiler on
virtually every platform.
: not be distributed alone since it fails the "generally available" compiler
: criteria. I'm also concerned that the C++ standard may not be nearly so
: well defined as those for the languages that I mentioned (feel free to
: correct this if it's wrong).
I think the standard is pretty well defined, BUT
a) it is evolving and likely to change more rapidly than F77/F90 or ANSI C
b) there aren't many compilers which implemenent the whole of the cuurrent
standard.
: If Linux has no fortran 77 compiler then it
: would be the only major platform that does not.
Linux currently only has the f2c translator which seems to work pretty well
(I've certainly got the most horrific FORTRAN to compile with it with no
problems.) However, there is a NAG FORTRAN for Unix about to be released
to be priced at UKP 295.00.
[...]
: David Mathog
:mathog at seqvax.bio.caltech.edu: Manager, sequence analysis facility, biology division, Caltech
--
****************************************************************************
Dr. Andrew C.R. Martin, University College London & SciTech Software
EMAIL: martin at bsm.bioc.ucl.ac.uk Tel: (Work) +44(0)71 387 7050 X3284
(Home) +44(0)372 275775
****************************************************************************