[net.followup] Chan on Dijkstra

jcwinterton (05/10/82)

Re: Dijkstra's Flames.
        WRT Don Chan's article  of  above title,  it  is   neces-
sary  to  say that it is true that programming could be more for-
mal. However, I do not subscribe  to  the  idea that  programming
is  at  all mathematical except that some programs do a consider-
able amount of arithmetic.  Programming is more  analytic   logic
than   anything   else.  Also, unless a program specification ex-
ists ists in an inviolable condition,  you  can  never  be   sure
of  correctness.    In  real world programming, the specification
of a program is often very fluid as  the  needs  of   the    user
change,  and  since  the  user  is usually the guy with the purse
strings, you do what he wants.  Careless,  non-modular   program-
ming  can  make this  into  a  real mare's nest, and this has fi-
nally been recognized by the academic community.  Programming  as
a   science   will  never  be  as rigorous as one of the physical
sciences simply because the objects are  generally  fluid.   More
work   on   formal methods  of  approach  is  definitely  needed,
but we must all be careful not to go chasing off  into  the  wild
blue yonder trying to find  the  programming  language to end all
programming languages that can produce  verified  programs  which
run  reliably as soon  as they  will  pass  to  the  code genera-
tion  phase  of  the  compiler.   Many  programs  never   produce
"correct" results.  Often, it is sufficient to produce acceptable
results.
        People who denigrate COBOL, PL/1 and FORTRAN are  denying
the  inevitable.   These languages  are here to stay, and nothing
will replace them in the foreseeable future.  The reason is  very
practical,   and   it   is  investment.  Millions of dollars have
been spent writing programs in these languages and, due  to  gen-
eral  conservatism,  will  remain in  these  languages.   At  one
time, I worked for a company that capitlaized their  programs  as
assets  and  depreciated  them   as  if they  were  equipment  or
furniture.  It took a long time to convince them  that  this  was
poor  practice, as the life-expectancy of any  given  version  of
a program appears to be somewhere between three and nine months.
        Another point about the  "commercial"  language   detrac-
tors  is  that  very few of them have ever written a serious pro-
gram in any of the  three  except,   perhaps,  FORTRAN.    It  is
only  natural  that  anyone  who  has had exposure to ALGOL based
languages would learn to hate FORTRAN with  a  passion.   Lumping
COBOL   into   the  same class is, however, a gross error.  COBOL
was designed to  complement  FORTRAN  (used  by   engineers   and
scientists)  for  use  by  the business world for accounting pur-
poses. It has served this purpose well and  faithfully,   turning
most  major  commercial  computers  into printing presses.  COBOL
does, however, do something that many of the "nice" languages  do
not do, and that is define I/O very carefully and with a real ef-
fort at being useful.
                                        John Winterton.