The magazine of the Melbourne PC User Group
...Considered Harmful
Trevor Gosbell |
|
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.
And a search on Google for the phrase "considered harmful" yields more than
fifty thousand results ranging from the esoteric - "Current Parsing Techniques
in Software Renovation Considered Harmful" - to the bleeding obvious - "Spam
Considered Harmful". Interestingly, nearby in the results is "Spam Control
Considered Harmful" - so where does that leave us? Some clown even has a Web log
"Weblogging Considered Harmful".
It's all a bit much.
And finally - inevitably - there is Eric Meyer's page "'Considered Harmful'
Essays Considered Harmful". (While it's always exciting to find others share
your views, it's annoying to find they've already nabbed the title for your
article!)
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 goto
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 Sjöberg's satirical
guide "How to Argue on Usenet".
- It is a boring cliché. Even as parody "... Considered Harmful" is a pretty
unoriginal idea - one that lost its 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 were it Linus Torvalds! So "by whom?" is
critical to establishing context but we are rarely told who is doing the
considering.
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", 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 tumour, could turn out to be a fatal
disease.
Anyone who has witnessed more recent religious debates about computers (eg. Mac
vs PC, Windows vs Linux, C++ vs Java, Perl vs all comers) can imagine how this
was received by supporters of those languages. 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 Dijkstra 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.
Reprinted from the August 2003 issue of PC Update, the magazine of Melbourne PC User Group, Australia
|