Channels ▼
RSS

Web Development

Farewell, Devil's Advocate


Last week, Stan Kelly-Bootle shuffled off this mortal coil. For younger programmers, this event will likely have little immediate significance and not elicit any sentiment of commemoration. But for readers who remember a different era of prose in computing, his passing will mark the confirmation of a transition from thoughtful, witty, long-form prose in the world of software development. Today, in programming, there are few if any voices that blend humor, wit, and deep learning. Things were not always this way. In the 1990s, Kelly-Bootle wrote a truly extraordinary column, called Devil's Advocate, that ran in UNIX Review and was read by essentially all cognoscenti of the era. (It went on to be published less frequently in ACM Queue magazine during the first decade of the 2000s.)

Devil's Advocate was known for clever and frequently very subtle word play that expressed sharp insights into the industry supported by a profoundly learned presentation that drew from an almost inexhaustible library of obscure references, all carefully researched (and much of it long before the Web made such searching easy). I have included a long example at the end of this missive, which starts with Kelly-Bootle speculating on the proper pronunciation of FAQ, segueing into the problem that recursion presents when used in acronyms, ending up with a serious, insightful riposte to the use of dictionaries as a tool of Holocaust deniers — that links back to recursion and, indeed, FAQs.

At the time, the Holocaust discussion (which I've abridged below) drew written comments from Bertrand Meyer, who like Kelly-Bootle suffered in Europe during World War II. Such was the audience and the respect Stan enjoyed. No one in technology today covers in one column such a wide range of topics. There is an impatience in the present that precludes spending a full 20 minutes reading a column and being forced to think about what the author is saying and how. We are too easily distrac…

Stan first came to my attention in a brilliant skewer of Microsoft's promotion of its then-new "Optimizing C Compiler." At launch time, Microsoft made a big fuss about how well the compiler optimized the code of the popular benchmarks of the day, one of which was a simple integer loop that just counted from 1 to 1 million. In the ads, the Microsoft compiler's time on this task was a rather astonishing 0.00 ms. The number was accompanied by an asterisk. In the footnote, it was explained that the compiler detected that the result of the loop was never used, so it simply stripped the loop away. Kelly-Bootle jumped on this and accurately pointed out that the one and only reason a developer would write such a loop was to create a delay in program execution. Consequently, optimizing the loop away was precisely the opposite of the programmer's intended action. Whereupon, he rechristened the compiler, "Microsoft's Pessimizing Compiler," a term he used for years.

Before I provide the excerpt from one of any of hundreds of his columns I could have chosen, let me just add that Kelly-Bootle wrote books on language (that is, both spoken languages and, separately, computer languages), composed many songs (one of which was recorded by Judy Collins), and was known to all his friends and colleagues as a member of the very first graduating class anywhere to receive degrees in computer science (from Cambridge): "Computers were simpler then. We had only 0's. We'd read papers discussing computers with 1's and 0's, which opened our eyes and made us yearn. We prayed for 1's to come to [Cambridge]. Finally, we got them and everything was greatly changed. Still, computing with just 0's was an awful lot easier."


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 
Dr. Dobb's TV