From: edp@math.zko.dec.com (Eric Postpischil)
Subject: Re: Scientists as Programmers (was Re: Small Language Wanted)
Reply-To: edp@math.zko.dec.com (Eric Postpischil)
Organization: Digital Equipment Corporation
Date: Tue, 1 Sep 1992 17:36:36 GMT

In article <1992Aug31.135937.5801@dcc.uchile.cl>, pchris@dcc.uchile.cl
(Chris Perleberg) writes:

>I worked for two summers in a physics research center (Mission Reseach Corp)
>in Santa Barbara, Calif.  All the people working there were PhDs in Physics
>and they all wrote nuclear codes in FORTRAN.  They found CS programmers to
>be useless: "....it's easier to teach a PhD en Physics how to program then
>to teach a CS programmer Physics...."  There is a hell of a lot of truth in
>that statement.  Most PhD's in Physics are reasonably intelligent and 
>programming is not really a difficult challenge.  And scientific code 
>often naturally structures itself.

On the other hand, I (a senior software engineer) have seen code written
by scientists.  While it manages to work, there are serious oversights
like forgetting to initialize variables, numerical instabilities, et
cetera.  I can be sure the code works on some data, but it has never
been properly tested by a good software engineer.

To say programming is not really a difficult challenge is to be unaware
of many of the pitfalls of computing, both numeric and algorithmic.  On
the numeric side, a physicist might be unaware of the proper order in
which to arrange arithmetic operations to preserve accuracy.  On the
algorithmic side, a physicist might be unaware of the issues of
computational complexity that would let them speed up a program or make
an infeasible program feasible or the issues of what problems are even
computable (recursively enumerable sets, et cetera).

The person who is really needed to write scientific applications is
neither your average scientist nor your average software engineer, but
somebody who knows both.  Hire me.  I majored in computer science,
graduated magna cum laude from Rochester Institute of Technology, and
have eight years of experience in operating systems development, yet my
physics teacher in an electricity and magnetism class remarked that I
was outperforming the physics majors, and my strongest skills are in
mathematics, in which I used all my electives and am now taking graduate
classes.  I'd love to have a job mixing programming and mathematics.  I
took the GREs last year and scored 790 verbal, 800 quantitative, and 800
analytic.  Don't know whether to hire a mathematician, physicist,
computer scientist, or programmer to do your computer work?  Call me.

As it happens, I am currently investigating homometric rulers that
measure distinct distances; these are part of a class of problems with
applications in crystallography, coherence theory, signal processing,
antenna array design, wavefront estimation in speckle imaging, electron
microscopy, inverse scattery, and image recovery from speckle
interferometry data in astronmy.  The problem I am examining is this: 
Given a ruler with m marks at various location which can measure the
m*(m-1)/2 distances between each pair of marks, is there another ruler
that measures the same distances but is not produced by reflection or
translation of the first?  It is known there are no such rulers for 5 or
fewer marks, but there is one family of such ruler pairs with 6 marks. 
Bloom and Golomb have conducted numeric searches for pairs with 7, 8,
and 9 marks with lengths up to 33, 43, and 49, respectively.  But a
colleague and I, both software engineers, have used non-numeric
algorithms to search for symbolic solutions, and have proven there are
no such rulers with 7, 8, 9, or 10 marks of ANY length.  (Strictly, the
algorithms we use are numeric, in the coefficients of the algebraic
expressions we manipulate, but no numbers for the mark locations appear
in the program at any time; they are always symbolic.)  The numeric
programs could have been speed up a trillion times and they never would
have produced our results.

                                -- edp (Eric Postpischil)
                                "Always mount a scratch monkey."
                                edp@alien.enet.dec.com