Considered harmful is a part of a phrasal template used in the titles of at least 65 critical essays in computer science and related disciplines. Its use in this context originated in 1968 with Edsger Dijkstra's letter "Go To Statement Considered Harmful".
Considered harmful was popularized by Edsger Dijkstra's letter "Go To Statement Considered Harmful", 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. 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 "Go To Statement Considered Harmful". Regarding this new title, Donald Knuth quipped that "Dr. Goto cheerfully complained that he was always being eliminated."
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". The May 1987 CACM printed further replies, both for and against, under the title "'"GOTO Considered Harmful" Considered Harmful' Considered Harmful?". Dijkstra's own response to this controversy was titled On a Somewhat Disappointing Correspondence.
Considered harmful was already a journalistic cliché used in headlines, well before the Dijkstra article, as in, for example, the headline over a letter published in 1949 in The New York Times: "Rent Control Controversy / Enacting Now of Hasty Legislation Considered Harmful".
- William Wulf and Mary Shaw (February 1973). "Global Variable Considered Harmful". ACM SIGPLAN Notices. 8 (2): 28–34. doi:10.1145/953353.953355.
- Bruce A. Martin (November 15–19, 1976). "Letter O Considered Harmful". proposal considered by X3J3 members. Brookhaven National Laboratory, Upton, NY: X3J3: ANSI Fortran Standards Committee. (Full proposal text was included in post-meeting distribution; see summary.)
- Rob Pike and Brian Kernighan (1983). "UNIX Style, or cat -v Considered Harmful". USENIX.
- John McCarthy (December 1989). "Networks Considered Harmful for Electronic Mail". Communications of the ACM. 32 (12): 1389–1390.
- CA Kent; JC Mogul (January 1995). "Fragmentation Considered Harmful". ACM SIGCOMM Computer Communication Review. 25: 75–87. doi:10.1145/205447.205456.
- Tom Christiansen (October 1996). "Csh Programming Considered Harmful". See C shell.
- Peter Miller (1998). "Recursive Make Considered Harmful". AUUGN. 19 (1): 14–25. Archived from the original on 2015-03-30.
- Jonathan Amsterdam (February 2002). "Java's new Considered Harmful". Software Development Magazine.
- Ian Hickson (September 2002). "Sending XHTML as text/html Considered Harmful".
- Eric A. Meyer (December 2002). ""Considered Harmful" Essays Considered Harmful".
- C. Ponder; B. Bush (1992). "Polymorphism considered harmful". ACM SIGPLAN Notices. 27 (6): 76–79. doi:10.1145/130981.130991.
- J Yoon; M Liu; B Noble (April 2003). "Random Waypoint Considered Harmful". Infocom. 2: 1312. doi:10.1109/INFCOM.2003.1208967.
- A Mishra; V Shrivastava; S Banerjee; W Arbaugh (June 2006). "Partially Overlapped Channels Not Considered Harmful". Sigmetrics. 34: 63. doi:10.1145/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".
- Jun-ichiro itojun Hagino (October 2003). "IPv4-Mapped Addresses on the Wire Considered Harmful".
- Rich Felker (a.k.a. 'dalias') (July 2013). "NULL considered harmful". See C (programming language).
- Paul Ceruzzi (June 2015). "Star Trek Considered Harmful".
- Howard Chu (February 2008). "GnuTLS Considered Harmful".
- Joanna Rutkowska (October 2015). "Intel x86 considered harmful" (PDF).
- Drew DeVault (November 2016). "Electron considered Harmful".
- Alex North-Keys (January 2016). "Commandname Extensions Considered Harmful".
- "Miscellaneous - Considered Harmful". Archived from the original on 2009-05-03. Retrieved August 17, 2009.
- Edsger Dijkstra (March 1968). "Go To Statement Considered Harmful" (PDF). Communications of the ACM. 11 (3): 147–148. doi:10.1145/362929.362947.
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.
- Dijkstra, Edsger W. EWD-215 (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription)
- David R. Tribble (February 2005). "Go To Statement Considered Harmful: A Retrospective" (PDF).
- Dijkstra, Edsger W. What led to "Notes on Structured Programming" (EWD-1308) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription) (June, 2001)
- Kanada, Yasumasa (2005), "Events and Sightings: An obituary of Eiichi Goto", IEEE Annals of the History of Computing, 27 (3): 92, doi:10.1109/MAHC.2005.37
- Frank Rubin (March 1987). ""GOTO Considered Harmful" Considered Harmful" (PDF). Communications of the ACM. 30 (3): 195–196. doi:10.1145/214748.315722. Archived from the original (PDF) on March 20, 2009.
- Donald Moore; Chuck Musciano; Michael J. Liebhaber; Steven F. Lott; Lee Starr (May 1987). "" 'GOTO Considered Harmful' Considered Harmful" Considered Harmful?" (PDF). Communications of the ACM. 30 (5): 351–355. doi:10.1145/22899.315729.
- Dijkstra, Edsger W. On a Somewhat Disappointing Correspondence (EWD-1009) (PDF). E.W. Dijkstra Archive. Center for American History, University of Texas at Austin. (transcription) (May, 1987)
- Mark Liberman (April 8, 2008). "Language Log: Considered harmful". Retrieved August 17, 2009.