Peter Naur wins ACM Turing Award

The ACM Press Release summarizes Peter Naur's substantial contributions to computer language design and to software engineering. Naur's work has influenced my own computer systems development work in a couple of ways. First, in the early 1980's I read the Revised Report on the Algorithmic Language Algol 60 and was impressed by the clarity of the specification. It has remained a model for my own efforts to write technical documentation.

The second influence of Peter Naur on my work comes from reading many of his collected writings in Computing: A Human Activity. His emphasis on the very human nature of software engineering reminds me that technology is all about people. In this book is a talk that Naur gave at a colloqium on ALGOL 60, titled "Successes and Failures of the Algol Effort" (reprinted in ibid. , pp. 93-97). In this talk Naur describes some second thoughts about the Algol 60 report, despite the quality of the report's writing. Naur says:

In so far as the ALGOL 60 report has made it clear that a carefully worded, defining description is of great for the work with programming languages, so far the description of ALGOL 60 may be counted as a success for our effort. But this must not blind us to the need for descriptions oriented to human readers. In view of the fact that the ALGOL 60 report has gained the reputation of being very hard on the uninitiated reader, we must conclude that on this score our efforts have been a failure. The ALGOL 60 report ought to have contained an informal introduction and description of the language, including an account of the reasons for including various features. We failed in this and suffered a great deal of lack of understanding thereby.

This is an important point. It's clear that "descriptions oriented to human readers" are crucial for the success of the many computer systems and applications that are deployed virtually everywhere. And my experience is that few delivered application descriptions are "oriented to human readers". Most documentation is complicated and tiresome to read. But Naur is talking about software descriptions written for software people, specifically, a language description that is read by a compiler writer. The grammar, by itself, is not enough. Francis Hwang recently came to same conclusion; the code by itself is not enough. Documentation is required. It's a common mistaken idea that agile software development approaches are anti-documentation. But that's not correct. Agile development is about continually asking about, and delivering, documentation that is needed by developers and by users.

Technorati Tags: , , , ,