2001 August

Letter to Peter Denning regarding CS, SW and IT

Dear Peter Denning,

Here some thoughts triggered by your IT Profession note in the CACM.

Perhaps you can fix through an IT profession another problem that has been festering as long as CS exists. Let me backtrack.

CS is a reasonable label for the hardware side. Computers are indeed the result of material engineering solidly backed up by multiple sciences.

However there is no science whatsoever that backup the software side. Hence software as part of CS has always been a very ill fit. The concoction of "software engineering" has been pathetic and made as much sense as say "steel butter".

This situation is more than an academic topic. In fact it is at the heart of the lousy software that we are living with and it is the source of, for example, the do-before-thinking "practices" of extreme programming and similar voodoo movements. At the same time, one can not blame the desperate proponents of such "practices". Even UML does not have a rigorous formal semantics, while UML is supposed to be the language in which systems can to be described without resorting to operational specifications.

To elaborate the obvious: software construction is still done as if a house is build without a blueprint, a bridge is build without engineering calculations. There is no formal - non operational - language in which to specify realistic software systems.

The core reason - I believe - is that one has not been willing to see SW as being applied logic, if you will the Dijkstra approach. Hoare logic was a step in the right direction (30 years ago?), but that language was not extended for pointers, threads, processes, etc.

Let me give two examples as proof of the terrible situation. Consider the Robson copying algorithm and the Patterson-Wegman linear unification algorithm. It is impossible - for 20 years now - to provide a formal spec of these algorithms and feed these (together with these algorithms of course) into a symbolic evaluator so that the appropriate proof obligations can be automatically generated; thereby demonstrating the satisfaction of the algorithms against there specs.

Thus, to come back to your initiative: please incorporate SW as part of IT and ground IT in applied logic.

Good luck !