The *ART* of Computer Programming

Gregory G. Woodbury ggw at wolves.uucp
Sat Mar 3 17:52:57 AEST 1990


In article <1990Feb26.234217.23251 at aucs.uucp> 861087a (Andreas Pikoulas) writes:
>    From Paul Tom's book "Computer Information Systems" page 169
>
>   " Not only do organizations standarize programming languages, they also
>develop coding styles so that programs written by different programmers
>all follow good coding conventions. While SOME consider programming a
>"creative activity", a programmer should be as creative as a bricklayer
>following a blueprint for building a wall on a house. Creative programming,
>like accounting, can only get the user into trouble. "
>
>Please elaborate on this by e-mail. I plan to send your answers to the
> author.

	Despite the note about e-mail elaboration, I think this really needs
to be aired publicly.  Here is my response....

	There are two main problems with this attitude.
1) It assumes that computer programming is dealing with some exact problem
   that has exactly one correct solution.
2) It assumes that the bricklayer reading a blueprint for a building wall
   will have nothing inexact or creative to do.

	To pick up the 2nd point first.
	The "average" bricklayer (if such a person exists) may not have
to challenge his ingenuity over 90% or so of a strech of wall.  But, the
particular patterning of bricks around a window or door, especially if
the opening is of a non-conventional shape, may require a great deal of
ingenuity and problem-solving.  To add to the situation, sometimes the
architects patterning of brick colors, or even the use of stonework other
than the rectangular regularity of brick, may require several hours of
thought before the placement of a particular stone, or even in the
selection of which stone to put where!
	I have tried my hand at both bricklaying and stonemasonry (there
is a difference!).  I enjoyed it (except for climbing ladders) but
discovered that I could earn more by sitting inside and programming
computers for a living.  The author exhibits the usual elitist attitude
that the "blue collar" trades do not require creativity or ingenuity.  A
little bit of "on-the-job" research would show him why a master carpenter
or a master stonemason can earn as much or more than a programmer.

	Now, back to point 1.
	In the "average" programming situation (if there is such a thing)
there are probably "usual and customary" algorithims and procedures that
will do what is necessary.  But, in certain situations, especially when
dealing with a new class of problem, or in implementing a newly invented
technique (e.g. a new statistical tool or writing a compiler for a new
computer architecture) the situation may require a lot of thought and
ingenuity (read creativity) to "do the right thing".  To add to the
situation, the architects of the system may impose specific coding or
documentation standards that may require several hours (or days) of
thought in order to determine how to code within the requirements.

	I suspect that the original quotation, lifted out of its context
is badly misrepresenting the authors intention.  If he is trying to say
that ALL PROGRAMMING is just routine laying down of one brick after
another, then he is insulting the profession.  On the other hand, if he
is (as I suspect) classifying only a certain aspect of programming (i.e.
the development of accounting packages) then he may be correct.  I would
like to have a little more context for this particular quotation.
--
Copyright 1990, Gregory G. Woodbury, electronic re-distribution allowed
-- 
Gregory G. Woodbury
Sysop/owner Wolves Den UNIX BBS, Durham NC
UUCP: ...dukcds!wolves!ggw   ...dukeac!wolves!ggw           [use the maps!]
Domain: ggw at cds.duke.edu  ggw at ac.duke.edu  ggw%wolves at ac.duke.edu
Phone: +1 919 493 1998 (Home)  +1 919 684 6126 (Work)
[The line eater is a boojum snark! ]           <standard disclaimers apply>



More information about the Comp.unix.wizards mailing list