From: ejh@khonshu.colorado.edu (Edward J. Hartnett)
Subject: Re: scientists as programmers
Organization: Cooperative Institute for Research in the Environmental Sciences
Date: Thu, 27 Aug 1992 14:01:53 GMT

In-reply-to: schuette@wl.com's message of Wed, 26 Aug 1992 10:27:35 GMT
Newsgroups: comp.edu,comp.lang.fortran
Subject: Re: scientists as programmers (was: Small Language Wanted)
	<1992Aug25.202307.12365@newshost.lanl.gov>
	<1992Aug26.102735.12519@wl.com>
Distribution: 
FCC: /home/khonshu/ejh/News/outgoing

--text follows this line-- 

In article <1992Aug26.102735.12519@wl.com> schuette@wl.com (Wade Schuette) writes:

   OK, so having gone back and forth, maybe we have a sense now that there
   are scientists who write good code and scientists who don't, perhaps in
   a different ratio than people who spend more time focusing on programming
   issues. 

   Can we focus some attention on what CAN and SHOULD be taught to the
   scientists who would prefer to write good code and are reasonably bright
   but extremely busy.  On a very practical, very pragmatic basis.
   Suppose you can get 45 minutes of time, and hold a seminar on What every
   scientist should know about computing but probably doesnn't... or some such.

   One shot.  The room is impatient. The top people are late. (the projector
   doesn't focus.) Now what?  This is a serious question, as I'd like to do
   precisely this, for an audience of primarily biological / chemical 
   researchers.  Software Engineering 101, extremely applied, for people
   heavily into Fortran and "getting results today."

   Or maybe, this: if you had ONE thing you could try to get across, that would
   make sense to that audience in that time frame, what would it be?
   ==================================================================
   R. Wade Schuette         schuette@wl.com    Ann Arbor, MI, USA


I think I should have been more clear when I said that scientists are,
in general, not as good programmers as professionals. I also make a
distinction between coding and programming, which is this: good code
is compact and efficient, but a good program is good code that is well
organized, and, most importantly, well documented.

If I could sit down all those scientists in a room and tell them one
thing, it would be that in all my experience programming, nothing is
more worthwhile than documentation. Particularly with science, if it's
not documented, it's almost useless, and will be completely useless
whenever it's handed to someone other than the original programmer.
Why? Because with science you have to KNOW what's going on in the
code. A small mistake can EASILY skew scientific results. And the time
invested in organization and documentation is more than repaid again
and again. 

However, I don't think they'll listen. Why, I don't know, but it seems
impossible to convince a lot of them, unless they already have been
burned by having huge amounts of code turn useless at the departure of
a programmer. Then they might think "I don't want this to happen
again." However, with their own code, they will not get burned
like this, they will burn someone else maybe, but they won't be around
to witness that. And without that kind of experience, it's hard to
convince them that even working with their own code would be a lot
easier if it were better documented and organized.

I guess it's exactly the same with professional programmers; I wasn't
convinced of this until I ended up with a job working on someone
else's code, (in fact it's happened to me many times), and I almost
cry to see that so much of their work is wasted, and has to be redone,
when just a few hours a week would have made it permanently useful - a
springboard for their successors, instead of a millstone around their
necks. That's why I started being such a fanatic for documentation.
And it was only after that that I realized it was helping me a lot
too. I think few scientists go through this process, because they most
often start and work on their own projects - they don't often take up
where someone else left off, in the middle of the programs.

I certainly didn't mean to make such a blanket statement as
"scientists are bad programmers." What I should have said is that it's
unfortunate that so few scientists (in my experience) realize the
importantance of comprehensive documentation and well organized code.
C.S. and C.E. people tend to have this drummed into them more in their
training. (Scientists think "why?" Engineers think "how?").

Sorry about the length of the post!

-- 
Edward Hartnett			ejh@khonshu.colorado.edu

Newsgroups: comp.lang.fortran