Considered harmful
From Wikipedia, the free encyclopedia
In computer science and related disciplines, considered harmful is a phrase popularly used in the titles of diatribes and other critical essays (there are at least 65 such works[1]). It was popularized by Edsger Dijkstra's letter Go To Statement Considered Harmful,[2] published in the March 1968 Communications of the ACM (CACM), in which he criticized the excessive use of the GOTO statement in programming languages of the day and advocated structured programming instead.[3] The original title of the letter, as submitted to CACM, was A Case Against the Goto Statement, but CACM editor Niklaus Wirth changed the title to the now immortalized Go To Statement Considered Harmful.[4]
Frank Rubin published a criticism of Dijkstra's letter in the March 1987 CACM where it appeared under the title 'GOTO Considered Harmful' Considered Harmful[5]. The May 1987 CACM printed further replies, both for and against, under the title '"GOTO Considered Harmful" Considered Harmful' Considered Harmful?[6]. Dijkstra's own response to this controversy was titled On a somewhat disappointing correspondence.[7]
According to linguist Mark Liberman, considered harmful was a journalistic cliché, used in headlines, well before the Dijkstra article. He cites the headline over a letter published August 12, 1949 in The New York Times: "Rent Control Controversy / Enacting Now of Hasty Legislation Considered Harmful".[8]
Contents |
[edit] Variants
Some variants with replacement adjectives (considered silly, etc.) have been noted in hacker jargon.[9] Many variants dealt with computer-related issues, such as: "Weblogging Considered Harmful" [10] "'Reply-To' Munging Considered Harmful" [11] "XMLHttpRequest Considered Harmful" [12] "Letter 'O' Considered Harmful" [13] "Csh Programming Considered Harmful" [14] "Geek Culture Considered Harmful to Perl" [15]
Eric A. Meyer focused upon the letter, itself:
- "Considered Harmful" Essays Considered Harmful [16]
Others extended Rubin's criticism, of Wirth's refutation cliche, into a recursive sequence, starting with:
- "GOTO Considered Harmful" Considered Harmful' Considered Harmful
- "GOTO Considered Harmful" Considered Harmful' Considered Harmful considered harmful
- "GOTO Considered Harmful" Considered Harmful' Considered Harmful considered harmful considered harmful
- . . .
There is no obvious limiting condition to end this infinite sequence (nor any standard punctuation convention with which to represent it).
This recursive notion was reminiscent of (and may have been inspired by) a series of earlier letters that appeared in "MAD" magazine, beginning with:
- "The guy who writes your letters should write the rest of the magazine."
then, in a subsequent issue:
- "The guy who writes your 'The guy who writes your letters should write the rest of the magazine.' letters should write the rest of the magazine."
and, later:
- The guy who writes your "The guy who writes your 'The guy who writes your letters should write the rest of the magazine.' letters should write the rest of the magazine." letters should write the rest of the magazine.
Similar recursions were extended even further, in later issues of "MAD" magazine, during the late 1950s or early 1960s. These MAD magazine letters were published several years prior to Wirth's re-titling of the Dijkstra letter, and the further variations of it.
[edit] Related essays
- William Wulf and Mary Shaw (February 1973), "Global Variable Considered Harmful", ACM SIGPLAN Notices 8 (2): 28-34
- "Letter O Considered Harmful", proposal considered by X3J3 members, Brookhaven National Laboratory, Upton, NY: X3J3: ANSI Fortran Standards Committee, November 15-19, 1976 (Full proposal text was included in post-meeting distribution; see Fortran for summary.)
- Rob Pike and Brian Kernighan (1983). "UNIX Style, or cat -v Considered Harmful". USENIX. http://harmful.cat-v.org/cat-v/.
- John McCarthy (December 1989), "Networks Considered Harmful for Electronic Mail", CACM 32 (12): 1389–1390, http://www-formal.stanford.edu/jmc/harmful.html
- CA Kent, JC Mogul (January 1995). "Fragmentation Considered Harmful". ACM SIGCOMM Computer Communication Review. http://portal.acm.org/citation.cfm?id=205447.205456.
- Tom Christiansen (October 1996). "Csh Programming Considered Harmful". http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/. See C shell.
- Peter Miller (1998). "Recursive Make Considered Harmful". AUUGN Journal of AUUG Inc. 19 (1): 14–25. http://miller.emu.id.au/pmiller/books/rmch/.
- Jonathan Amsterdam (February 2002). "Java's new Considered Harmful". Software Development Magazine. http://www.ddj.com/dept/java/184405016.
- Ian Hickson (September 2002). "Sending XHTML as text/html Considered Harmful". http://hixie.ch/advocacy/xhtml.
- Eric A. Meyer (December 2002). ""Considered Harmful" Essays Considered Harmful". http://www.meyerweb.com/eric/comment/chech.html.
- C. Ponder, B. Bush (1992), "Polymorphism considered harmful", ACM SIGPLAN Notices 27 (6): 76–79
- J Yoon, M Liu, B Noble (April 2003). "Random Waypoint Considered Harmful". http://ieeexplore.ieee.org/xpls/abs_all.jsp%3Farnumber%3D1208967.
- Erik Möller (September 2005). "Creative Commons -NC Licenses Considered Harmful". http://freedomdefined.org/Licenses/NC.
- A Mishra, V Shrivastava, S Banerjee, W Arbaugh (June 2006). "Partially Overlapped Channels Not Considered Harmful". http://portal.acm.org/citation.cfm?id=1140103.1140286.
- Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger (December 2008). "MD5 considered harmful today - Creating a rogue CA certificate". http://www.win.tue.nl/hashclash/rogue-ca/.
[edit] See also
[edit] References
- ^ Jeffrey Overbey - Miscellaneous - Considered Harmful
- ^ Edsger Dijkstra (March 1968). "Go To Statement Considered Harmful" (PDF). Communications of the ACM 11 (3): 147–148. doi:. http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF. "The unbridled use of the go to statement has as an immediate consequence that it becomes terribly hard to find a meaningful set of coordinates in which to describe the process progress. ... The go to statement as it stands is just too primitive, it is too much an invitation to make a mess of one's program.".
- ^ David R. Tribble (February 2005). "Go To Statement Considered Harmful: A Retrospective". http://david.tribble.com/text/goto.html.
- ^ Edsger Dijkstra (June 2001). "What led to "Notes on Structured Programming"". http://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1308.html.
- ^ Frank Rubin (March 1987). ""GOTO Considered Harmful" Considered Harmful" (PDF). Communications of the ACM 30 (3): 195–196. doi:. http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf.
- ^ Donald Moore, Chuck Musciano, Michael J. Liebhaber, Steven F. Lott and Lee Starr (May 1987). "" 'GOTO Considered Harmful' Considered Harmful" Considered Harmful?" (PDF). Communications of the ACM 30 (5): 351–355. http://www.ecn.purdue.edu/ParaMount/papers/acm_may87.pdf.
- ^ Edsger Dijkstra (May 1987). "On a somewhat disappointing correspondence". http://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/EWD1009.html.
- ^ Language Log: Considered harmful
- ^ Eric S. Raymond et al.. "The Jargon File". http://www.catb.org/~esr/jargon/html/C/considered-harmful.html.
- ^ "Weblogging Considered Harmful". http://www.considered-harmful.org/.
- ^ "Reply-To" Munging Considered Harmful". http://www.unicom.com/pw/reply-to-harmful.html.
- ^ "XMLHttpRequest Considered Harmful". http://www.xml.com/pub/a/2005/11/09/fixing-ajax-xmlhttprequest-considered-harmful.html.
- ^ "Letter 'O' Considered Harmful". http://www.j3-fortran.org/.
- ^ "Csh Programming Considered Harmful". http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/.
- ^ "Geek Culture Considered Harmful to Perl". http://petdance.com/perl/geek-culture/.
- ^ Eric A. Meyer. ""Considered harmful essays considered harmful"". http://meyerweb.com/eric/comment/chech.html.

