From: cflatter@nrao.edu (Chris Flatters)
Subject: Re: Scientists as Programmers (was Re: Small La
Reply-To: cflatter@nrao.edu
Organization: NRAO
Date: Thu, 27 Aug 1992 15:58:35 GMT


In article 6523@ultb.isc.rit.edu, jsvrc@rc.rit.edu (Doctor FORTRAN) writes:
>In article <1992Aug25.154501.8654@colorado.edu> ejh@khonshu.colorado.edu (Edward J. Hartnett) writes:
>
>> [. . . . ] I think that
>>what you are seeing is not that FORTRAN lends itself to rotten code,
>>but that scientists usually write bad code, in whatever language they
>>use. No offense to scientists, but I have rarely if ever seen a
>>scientist who was a good programmer.
>
>Then you haven't met Dr. FORTRAN. :-) Seriously, there are scientists who
>write good code, and there are those who write bad code. Going by my personal
>experience, I would imagine that at least some of the scientists who write
>good code have in the past written bad code that came back to haunt them.
>
>Nevertheless, you do have a point. Software specialists will argue about the
>best data structure to use for a problem, and still be trying to dope it out
>while the scientist has the whole thing already coded. That's because the
>scientist will see the program as what it truly is: a means to an end, rather
>than as an end unto itself. If computing is an end unto itself, it cannot
>be of practical consequence. (Didn't Hamming like to say that the purpose of
>computing was insight, not numbers?) But I must disagree when you characterize
>scientists as bad programmers. That's bigotry, and a stereotype to which I
>must strenuously object.
>
>I thank you.
>
>Doctor FORTRAN


In "The Psychology of Computer Programming" Gerald Weinberg divided
programmers into two classes, professionals and amateurs (pp122-125).
In his terms most scientists are amateur programmers (I would actually
prefer to use the term casual programmers, which avoids the somewhat
derogatory implications of amateurism).  They write programs mainly for
their own use and often only for a limited number of runs while a
professional writes programs that other people are expected to use.

The casual programmer can get a program up and running faster than a
professional because he can avoid dealing with many issues of software
quality: he doesn't expect to get people beating on his door to
complain that an error message or that certain inputs caused his
program to dump core.  A software specialist has to (or, perhaps more
realistically, should) bother about the convenience of the user who
will not know the internals of the program.  The casual programmer
doesn't need to bother about this and may be somewhat bewildered at the
time and effort software specialists spend planning a program before
they write it.

This isn't intended to belittle casual programmers.  They have a different
set of priorities from software specialists and so tend to work in different
ways.  There is, however, a widespread problem in scientific computing:
casual programmers are often dragooned into writing software for other
people to use.  This is asking for trouble unless they are willing to
change their programming habits.

	Chris Flatters
	cflatter@nrao.edu 
Newsgroups: comp.lang.fortran