If you browse around the web or newsgroups long enough, especially on computer-related topics, you may soon get the impression that practically everything is “… Considered Harmful”. These two words crop up again and again. If “… Considered Harmful” appears in the subject line of a posting to a newsgroup or mailing list you know you’re in for a one-eyed diatribe.

Who started it?

The origin of the “… Considered Harmful” title is legend now. Prominent computer scientist Edsger Dijkstra (the pioneer of structured programming) submitted an article “A case against the goto statement”, which was published in the March 1968 edition of the Communications of the ACM (Association for Computing Machinery). The editor, Niklaus Wirth, printed it in “Letters to the Editor” under the title Go To Statement Considered Harmful.

The phrase is often attributed to Dijkstra, but it doesn’t appear in the body of the article (in fact, he didn’t use the word “harmful” at all - “abolished”, “undesirability” and “superfluous” - yes, but not “harmful”). The first time he used the dreaded phrase was in a follow-up letter in August 1968 - and then only in reference to the original article. Clearly it is Wirth who is to blame for the expression. He probably thought it sounded catchy, and it must have been - fifty thousand web pages can’t be wrong!

Objections

Meyer’s objections to the ongoing use of “… Considered Harmful” are that:

It only serves to inflame debate. Dijkstra’s original was the model for this, opening with:

“For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce.”

Probably a throw-away line, but one bound to raise the ire of those who favoured that way of programming, especially when found immediately below the “… Considered Harmful” heading.

It harms the author’s cause by alienating neutral parties. Using “… Considered Harmful” in online debate sounds like a tactic from Lore Sjoberg’s satirical guide How to Argue on Usenet.

It is a boring cliche. Even as parody “… Considered Harmful” is a pretty unoriginal idea - one that lost it’s edge long ago.

I would also add that:

It is a dodgy attempt to claim the intellectual high-ground. By picking an infamous phrase attributed to a respected authority, later authors try to piggy-back on Dijkstra’s reputation.

It is simply poor English. “Considered” is a verb without a subject, so we need to ask “Considered by whom?” Suppose we found a piece called “Linux Considered Harmful” - it would hardly raise an eyebrow if “by whom?” turned out to be Bill Gates. But it would be headline news it were Linus Torvalds! So “by whom?” is critical to establishing context but we are rarely told who is doing the considering.

Sure enough…

After this article was published, “Linux Considered Harmful” appeared - in the 18 July 2003 entry of Philip Greenspun’s weblog. For the record it really doesn’t just apply to Linux - it’s a fable about the dangerous things that can be done at the Unix command line. Perhaps someone should remind Greenspun that Linux is but one flavour of Unix. Or maybe he just couldn’t resist such a sensational headline. (And who could blame him?)

In any case, it’s hardly surprising that it was neither Gates nor Torvalds that offered up YACHA (Yet Another Considered Harmful Article) to the world.

Not as easy as you think

Those who use the Dijkstra/Wirth approach, probably think “… Considered Harmful” a useful debating tactic because the goto statement largely fell out of favour. However supporters of “… Considered Harmful” probably don’t know that Dijkstra’s letter triggered what was effectively one of the first flame wars. The ensuing argument was so fierce that to this day the ACM will not publish anything remotely incendiary.

Like many brilliant people, Dijkstra seems to have been somewhat opinionated and perhaps a little tactless. In his 1972 Turing Award address, titled The Humble Programmer [PDF], he laid the boot into FORTRAN, ALGOL, and PL/I - all popular programming dialects at the time, saying among other things:

“When FORTRAN has been called an infantile disorder, full PL/I, with its growth characteristics of a dangerous tumor, could turn out to be a fatal disease.”

Anyone who has witnessed more recent religious debates about computers (e.g. Mac vs PC, Windows vs Linux, C++ vs Java, Perl vs all comers) can imagine how this was received by supporters of those languages. Or replace “C” for “FORTRAN” and “Java” for “PL/I”. You get a feel of the mood from the title of a response published later that year: “The Arrogant Programmer: Dijkstra and Wegner Considered Harmful”.

In “The Humble Programmer” Dijkstra also reiterated his argument about the goto statement. Not surprisingly the infamous “… Considered Harmful” letter had not won the argument on its own, and Dikstra was still making his case years later.

Considering “… Considered Harmful”?

And this is the main problem with the use of “… Considered Harmful” - people mistakenly think that the infamous “Go To Statement Considered Harmful” letter was all it took to have goto tamed and structured programming accepted. Before using those two words, authors should consider whether their idea is anywhere near as good as structured programming, whether they have Dijkstra-like ability to sustain the argument for a long time, and whether “… Considered Harmful” is the best way to influence people.

If the answer to any of those is “no”, then perhaps they should consider taking another approach or keeping their thoughts to themselves.