[comp.software-eng] Aggressive optimization

bglenden@mandrill.cv.nrao.edu (Brian Glendenning) (11/22/90)

In article <PCG.90Nov8163939@odin.cs.aber.ac.uk> pcg@cs.aber.ac.uk (Piercarlo Grandi) writes:
   This discussion reminds me of Dijkstra's famous address in 1968 to some
   (the IFIP?)  conference, on the software crisis, that went like this:

     We have a software crisis, and we are told that we must advance the
     state of the art so as to solve it. We are only given a few constraints
     to satisfy:

	     no changes to the hardware platforms
	     no changes to the languages
	     no changes to the operating systems 
	     no changes to the education of programmers
	     no changes to the software tools
	     no changes to organizational practices
	     ...

     Well, this is RIDICULOUS!

Does anyone have the correct reference for this (or even the actual
text?) Thanks!

Brian
--
       Brian Glendenning - National Radio Astronomy Observatory
bglenden@nrao.edu          bglenden@nrao.bitnet          (804) 296-0286

meeuse@idca.tds.PHILIPS.nl (Jaap A. Meeuse) (11/23/90)

In article <BGLENDEN.90Nov21143012@mandrill.cv.nrao.edu> bglenden@mandrill.cv.nrao.edu (Brian Glendenning) writes:
>In article <PCG.90Nov8163939@odin.cs.aber.ac.uk> pcg@cs.aber.ac.uk (Piercarlo Grandi) writes:
>   This discussion reminds me of Dijkstra's famous address in 1968 to some
>   (the IFIP?)  conference, on the software crisis, that went like this:
>
>     We have a software crisis, and we are told that we must advance the
>     state of the art so as to solve it. We are only given a few constraints
>     to satisfy:
>
>	     no changes to the hardware platforms
>	     no changes to the languages
>	     no changes to the operating systems 
>	     no changes to the education of programmers
>	     no changes to the software tools
>	     no changes to organizational practices
>	     ...
>
>     Well, this is RIDICULOUS!
>
>Does anyone have the correct reference for this (or even the actual
>text?) Thanks!
>
>Brian
>--
>       Brian Glendenning - National Radio Astronomy Observatory
>bglenden@nrao.edu          bglenden@nrao.bitnet          (804) 296-0286

The actual text:

Dijkstra: I would like to comment on the distinction that has been made
between practical and theoretical people. I must stress that I feel this
distinction to be obsolete, worn out, inadequate and fruitless. It is just no
good, if you want to do anything reasonable, to think that you can work
with such simple notions. Its inadequacy, amongst other things, is shown by 
the fact that I absolutely refuse to regard myself as either impractical or
not theoretical.
  David expressed the idea that "We can make case studies in industry, and
then you can study the results. You can do these analysis." A probable effect
of the distinction is that if such a study is made, the aoutput of it can be
reagrded as theory and therefore ignored. What is actually happening, I am
afraid, is that we all tell each other and ourselves that software engineering
techniques should be improved consideraly, because there is a crisis. But
there are a few boundary conditions which apparently have to be satisfied. I
will list them for you:
1 We may not change our thinking habits.
2 We may not change our programming tools.
3 We may not change our hardware.
4 We may not change our tasks.
5 We may not change the organizational set-up in which the work has to be done.
Now under these five immutable boundary conditions, we have to try to 
improve matters. This is utterly ridiculous. Thank you. (Applause)

This was copied from page 13 of the:

Report on a conference sponsored by the NATO SCIENCE COMMITTEE
Rome, Italy, 27th to 31th October 1969: SOFTWARE ENGINEERING TECHNIQUES

Copy of the contents of its page 2:

The present report is available from:
Scientidic Affairs Division
NATO
Brussels 39
Belgium

Publishers: NATO Science Committee

Printed in England at The Kynoch Press, Birmingham

IMHO, more than 20 years later, these boudaries have shown to be not
absolutely immutable: although we know that they cannot be changed
under our direct control, we see that they are changing (yes, not too
fast).
1 thinking habits:
  at least some of us are (becoming) aware that programming influences our
  thinking habits: especially programmers (like philosophers) tend to be
  utterly curious to know the exact semantics of what is said/written.
  Evidently this does not simplify their communications with other people,
  but it seems to become one of their characteristic thinking habits
  because they have to model such semantics in the results of their
  activities.
2 programming tools:
  at least some fundamental changes can be observed:
  - support for more formal approaches (VDM / Z  and Eiffel)
  - functional programming with it lazy-evaluation (Prolog)
3 hardware:
  here again:
  - parallel processing and neural networks
  - integration of vidio (text, pictures and other data) with audio (sound)
4 tasks:
  hopefully most of us have learnt that two types of complexity should be
  distinguished:
  - the intrinsic complex tasks: those that we don't know how to divide into
    tasks which are less complex (e.g. travelling salesman)
  - the extrinsic complex tasks: those that can be broken down into less
    complex tasks.
  Fortunately, nearly all of us are working on the second type. It is just
  a shame that we do not always exploit this.
5 organizational set-up:
  yes, here too we can observe some weak signals that boundaries are changing:
  not longer centralization is prefered always above distribution (USSR,
  Philips).

-- 
###  Jaap A. Meeuse         ###  Internet:  meeuse@idca.tds.philips.nl   ###
###  Philips IS, Dept OFS   ###  UUCP    :  ..!mcsun!philapd!meeuse      ###