An amateur’s outlook on computation and mathematics

Friday Night Smackdown

by Brian Hayes

Published 9 June 2006

The July-August issue of American Scientist is just up on the Web. My Computing Science column in the new issue is a grumpy, ill-tempered diatribe about the overproliferation of programming languages—and about the grumpy and ill-tempered bickering between advocates of various languages, which often sounds to me like the posturing of TV wrestlers promoting their next slamfest. Do we really have to come to blows over Python vs. Perl?

Shortly after the issue went to press, I discovered a recent article that I wish I’d seen sooner, because it so perfectly captures the mood I was trying to convey. The article is by Niklaus Wirth, who has contributed his fair share of the world’s programming languages, including Pascal, the Modula series and Oberon. Wirth’s article, which appears in IEEE Computer (Vol. 39, No. 1, pp. 28–39, January 2006), bears the curious title “Good Ideas, through the Looking Glass.” I’m not sure exactly how to parse those words. Do good ideas, when seen in the mirror, become bad ideas? Depends on the mirror, I guess. For what it’s worth, most of the ideas on Wirth’s list—especially in the realm of programming languages—are things he considers mistakes. He mentions such classics as the goto statement and the dangling-else problem, and he mocks the terse syntax of C and its offspring: x+++++y+1==++x+++y.

Wirth does not spare himself—although some of his criticism is strangely third-personal. “Pascal’s designer,” writes Pascal’s designer, “retained the goto statement as well as the if statement without a closing end symbol. Apparently, he lacked the courage to break with convention and made wrong concessions to traditionalists. But that was in 1968. By now, almost everybody understands the problem except for the designers of the latest commercial programming languages, such as C#.” Wow, he’s got ’em up against the turnbuckles in a hammerlock.

Responses from readers:

  • A comment from Kirsten Chevalier, 15 June 2006 at 6:11 pm

    (came here by following links from the article.) I didn’t know that ML was a pure functional language :-)

    Ah, and what you didn’t know you shouldn’t know — as you probably know. (And the ML goof was not my only goof. Explanation to follow within 24 hrs.) — Brian.

  • A comment from Koranteng Ofosu-Amaah, 16 June 2006 at 7:24 pm

    Further reading along the same lines

    My bit about On XForms, XPath, CSS, Brevity, Syntax And More

    Laurence Tratt’s take The Importance of Syntax

    This is a very interesting and wide topic… comprehension is the Holy Grail

Please note: The bit-player website is no longer equipped to accept and publish comments from readers, but the author is still eager to hear from you. Send comments, criticism, compliments, or corrections to brian@bit-player.org.

Tags for this article: computing.

Publication history

First publication: 9 June 2006

Converted to Eleventy framework: 22 April 2025

More to read...

Three Months in Monte Carlo

Exploring a computer model I’ve known for decades, I come face to face with some things I know that ain’t so.

Give Me That Good Old-Fashioned AI

Before ChatGPT we had Watson, before Watson SHRDLU, before SHRDLU ELIZA. Has anything changed?

More Questions About Trees

Why are they so tall? Why are they no taller? Also, why are they trees (in the graph-theory sense)?

Prime After Prime

The prime numers have been under the mathematical microscope for more than 2,000 years, and yet there’s a pattern in them no one noticed until just now.