Regularity

From Maze

(Difference between revisions)
Jump to: navigation, search
(→Conditional and Unconditional Branching)
(Added BASIC Considered Harmful sidebar)
Line 148:Line 148:
== The Harmfulness of GOTO ==
== The Harmfulness of GOTO ==
 +
== BASIC Considered Harmful (Sidebar) ==
 +
 +
Edsgar W. Dijkstra, of "GOTO Statement Considered Harmful," was not at all a fan of the BASIC programming language in which 10 PRINT is written. He wrote in a 1975 letter, "How do we tell truths that might hurt?," which was eventually published in 1985: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration" (EWD 498).
 +
 +
The statement appears amid other one-sentence jabs at programming languages (FORTRAN, PL/I, COBOL, and APL), IBM, and projects to allow "natural language" programming. In a 1984 keynote address, "The Threats to Computing Science," he said, similarly, that "the teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery" (EWD898). In both cases, his statements are not part of arguments, nor are they elaborated at all. They are simple denunciations of BASIC -- no doubt resonant with many computer scientists and no doubt of some tactical value at the time, when the structured programming that predominates today and that Dijkstra was advocating was still being questioned.
 +
 +
Dijkstra's papers contain a single reference to BASIC co-inventory John Kemeny. Dijkstra read Kemeny's 1983 article in ''Daedalus,'' an article that discussed the idea of computer literacy and declared that "the development of 'structured languages' in recent years has been a giant step forward." Dijkstra dismissed the article, however, as "gave a striking example of superficiality" by comparing computer languages to natural languages (EWD858).
 +
 +
Some of the context for these statements is the formation and fortification of a discipline, computer science, and the development and use of languages that would support first formal verification (the provability of programs) and later the weaker but still potentially very useful technique of program derivation (Tribble 2005). BASIC, created for quick interactive use and very amenable to creative production, was simply not a suitable language for Dijkstra's desiderata.
 +
 +
Another bit of context for these statements comes from Alan Kay, who remarked in his keynote speech to the 1997 Object-Oriented Programming, Systems, Languages & Applications conference: "I don't know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-Dijkstras."
 +
== Bounded and Unbounded Loops ==
== Bounded and Unbounded Loops ==

Revision as of 22:55, 27 July 2011

View this revision of Regularity.

Personal tools