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
- CA Kent, JC Mogul (January 1995). "Fragmentation Considered Harmful". 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.
- Eric A. Meyer (December 2002). ""Considered Harmful" Essays Considered Harmful". http://www.meyerweb.com/eric/comment/chech.html.
- 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.
- Ian Hickson (September 2002). "Sending XHTML as text/html Considered Harmful". http://hixie.ch/advocacy/xhtml.
- "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.)
- McCarthy, John (December 1989), "Networks Considered Harmful for Electronic Mail", CACM 32 (12): 1389–1390, http://www-formal.stanford.edu/jmc/harmful.html
- 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/
- William Wulf and Mary Shaw, “Global Variable Considered Harmful”, ACM SIGPLAN Notices, volume 8, issue 2, 1973 February, pp. 28-34.
- C. Ponder, B. Bush "Polymorphism considered harmful", ACM SIGPLAN Notices, 27:6 (1992) 76–79.
- Rob Pike and Brian Kernighan, “UNIX Style, or cat -v Considered Harmful”, USENIX 1983
[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.
- ^ 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.