Multicolumnar ideas had been lurking like Greek temples in my so-called mind as 2008 came to an end. There are so many annual journalistic clichés available, looking back at all our past-years’ mistakes and resolving never to repeat them in 2009. One annoyance that I must get off my chest here and now: Can we ban such empty constructions as “X is much worse than you may think”? Or “Y is much simpler than many suppose”? We may never have thought of X one way or the other, or made suppositions about the ease of Y, yet we tend to nod and move on as though some meaningful proposition has been asserted; and, worse, that some judgment has been validated beyond dispute. Let’s learn to recognize these sneaky-weasely variations of “proof by insinuation.”
Those of you attracted to fine literature and “literary programming” may be interested in Vladimir Nabokov’s devious “proofs by rhyme” (as well as “proofs by anagram”). For example, when discussing tribal antagonisms, he adds the warning: remember that stranger rhymes with danger. And so it does, but it also rhymes with manger, a place of rest for budding messiahs. The link also loses punch when you consider semantic drift: in Chaucer’s day danger meant aloofness! The counterexamples outnumber the examples. I invite CS pairs in both directions, such as Gates/mates and Knuth/truth. Yes, Nabokov is playfully weaving verbal “conceits” with no serious claim that strangers are dangerous because of a few shared syllables. Yet one must remain alert against endowing words and sounds with fanciful metalinguistic and a-historical “baggage.”
This year-end topic richesse can lead to a malady called writer’s glut, considerably more painful than writer’s block, which can be cured with a few double Islay single-malts.1 Gluts are harder to handle as the writer is torn between equally attractive, rival tropes. One is reminded of that poor creature in the philosopher’s menagerie: Buridan’s ass, not to be confused with Schrödinger’s cat, Maxwell’s daemon, Shanks’s pony, or Schopenhauer’s hedgehog. Buridan’s poor animal eventually dies of starvation, transfixed by indecision, stranded equidistantly between two identical piles of hay. (Note that there’s no immediate connection with the asses of the pons asinorum [asses’ bridge], which refers to the challenges of Euclid’s fifth proposition about isosceles triangles [quid googlet]).
Buridan’s ass, in fact, is a strange case of misattribution since the 14th-century philosophe, Jean Buridan, although intrigued by inertia and the ethics of conflicting choices, never discussed them in terms of this donkey’s dilemma. Buridan attacked many a strawman argument (including Occam’s razor), but never mentioned asses or equal piles of straw. In one of those quirks of celebrity, Buridan is remembered today solely for an animal invented by Buridan’s enemies who mocked his “moral determinism.” Aristotle, it was, who many centuries earlier first discussed the potential paralysis induced by opposing temptations.
In Aristotle’s version, it is a man, described as equally thirsty and hungry, who finds himself midway between, and beyond the reach of, a drink and a meal. You’ll notice that Aristotle’s scenario is less symmetrical than Buridan’s, introducing spurious complexities, such as ensuring that a drink and meal can somehow be made equally tempting. Indeed, we Irish neo-Cartesians (“I drink, therefore I am” and vice-versa) would deny any meaning to the phrase “equally thirsty and hungry.” This is a self-evident category error: two predicates that belong to distinct metric spaces, and therefore resistant to orderings and comparisons. Every Irish thirst (known technically, however transient, as “Bejays, I’m spittin’ feathers”) is equally demanding, and each maximally overrides all other bodily cravings, even beyond the death and wake of Finnegan. Thus the tiniest “touch of the craythur” trumps every food offering, even the most comprehensive Irish Breakfast enriched with extra chips, pets de none, and black pudding. (A death-cell prisoner, ordering a full Irish Breakfast as her last meal, is said to have died of excess cholesterol before the sentence could be carried out.) Aristotle’s man was replaced by an ass by Buridan’s foes on the grounds no rational human would ever starve while calculating the most attractive course of action to the nth decimal place. Spinoza went as far as saying that anyone seeing “two options as truly equally compelling cannot be fully rational.”
Ignoring the precise anecdotal details, we can sum up all the Aristotle and Buridan’s ass variants as useful models in the much debated area of ethics involving free will (of which more later if I so decide): how do we select between multiple-choice actions? Do we perform some determining moral arithmetic, balancing self-satisfaction with that inner voice of conscience and altruism?
Does this ethical odyssey butter any CS parsnips, I hear you cry? I know of only one Buridan CS victim: poor indecisive Mickey Thumps, whose atrophied corpse was found clutching a White Paper on the pros and cons of upgrading from Windows XP to Vista. In less fatal, everyday coding situations, one does find oneself Buridanically frozen at the keyboard, fingers poised over equally plausible keystrokes. This inaction, though, is far less excusable and rational under current software development facilities. We EOFs (extremely old farts) tend to see you under-65s as complacent arrivistes blessed with backspace, del, undo, and redo keys, and all manner of new-fangled, mollycoddling editing, interactive, and debugging crutches. In Brit soldier slang, programming has become “dead cushy.” And paid by the line, to boot! Why hesitate? Peck AnyKey and see! Click AnyWhere and stare.2 All is instantly revocable. Think Heuristic. Think Iteration. Think Agile. Think BoAD (Build [optional Augment] Destroy). Think SAP (Simulated Annealing Programming). Well, perhaps next year, sap.
Have I made the point? (More or less. But watch your deadlines. —Ed.) You kids are less likely to suffer the prevaricating angsts of us brave ENIAC and EDSAC pioneers. Stripped to the waist (even the men) amid the sweltering glow of a thousand thermionic valves, we flipped the switches and fed the punched tapes. Pre-prep and pre-check ruled. There was no going back. Once the run started, all our committed settings were at the implacable mercy of a lengthy execution. No easy diagnostic dumps explained the unexpected halts (even Turing was baffled!). Then came the checking of our results (if any) on an abacus: on a lucky day, two split peas on a rusty wire. (Is this true?—Ed.) The kids of today just don’t believe us. We had every right to pause and ponder before hitting GO. Nor could we pretend to be busy by fiddling with a mouse (whence the term “mousing around”). Pause for a timely, diverting link to dear Dr. Douglas Engelbart’s magic rodent, Mus graphicus, just celebrating its 40th birthday as reported in the SRI January 2009 Bulletin:
Personal computing made its world debut on December 9, 1968, when Dr. Engelbart and his team at SRI gave the first public demonstration of the mouse and other fundamentals of modern, interactive computing. On December 9, 2008, SRI presented a 40th-anniversary event in Memorial Auditorium at Stanford University to celebrate what has been called the “mother of all demos.” A crowd of about 1,000 gave Engelbart a standing ovation, recognizing the magnitude of his contributions. Logitech also announced on December 9 it had shipped its billionth mouse.
In spite of which (or possibly because of its infantile popularity, the victory of Disney over Descartes), we oldies remained mouse-cynical and GUI-resistant. Ambrose Bierce’s Devil’s Dictionary defined the mouse as “an animal which strews its path with fainting women.” Back in the early GUI days of insufficient processor power, I was not over-cynical in defining the computer mouse as “a device that strews its path with fainting applications” (Stan Kelly-Bootle, The Devil’s DP Dictionary, McGraw-Hill, 1981).
One must note that, especially on laptops, the trend is away from mice in favor of track pads built into the keyboard. These now have some remarkable tactile sensitivities allowing taps and multifinger “strokes, spreads, and swipes” to replace cumbersome mouse scrolls and button clicks. We are seeing a convergence with older touch-screen technologies, as in the iPod, whereby the screen is the touch pad. Is there a limit to the number and type of “gestures” that can be recognized by such devices? (Let’s ignore the gyroscopic and accelerometric sensors that record your frustration when you hurl the item out the window.) I ask because in celebrating Darwin’s 200th birthday, his work on “intrinsic, universal human expressions” has renewed debates on the semiotics of “two fingers.” Touchpad programmers need to know that there are regional-cultural variants at play here that send signals as different as Churchillian V-for-Victory, “Two pints, please,” and a hostile “Get lost!”
Incidentally, one wonders if Smith Micro, makers of that admirable compression software, realizes that “Stuffit” can be taken the wrong way by uptight Victorians? One such, when told to put his laptop “where the sun don’t shine,” drove it all the way to North Wales.
Returning to the relevance of Buridan’s ass, for those seeking a stronger CS link I can direct you to the real, down-to-earth topic of metastability. In fact, what could be more central to CS than binary ontology: a reminder of Maurice Wilkes’s quip that all computers are analog, and how analog signals beget stable 0s and 1s? At the risk of anthropomorphic (or asinomorphic?) distortion, one imagines baffled states hovering between the equally stable attractors, the piles of straw tagged 0 and 1. If this persists for longer than a clock cycle, we suffer metastability and the system (ass) can surely die. In the vast literature you can read about “the failure of asynchronous sequential logic circuits due to timing problems” (http://www2.computer.org/portal/web/csdl/doi/10.1109/12.391185). You can’t get more CS-speak than that!
My writer’s glut is self-resolving as one topic prompts a reasonable successor.
Consider Nicholas Ourusoff’s letter to CACM (January 2009) under the banner “CS As Related to Philosophy As It Is to Nature.” This is most encouraging. I have occasionally been chided for “over-waxing philosophically” by those who insist that CS columns should be confined to those vocational bits’n’bytes that govern our daily-breadwinning “project grind.” Yet, we must correct Ourusoff’s belief that computer science, philosophy, and nature are merely “interrelated.” This requires a digression into the meanings of his three elements. Nature, in the broadest sense, is that very “Fabric of Reality” which we aim to comprehend and explain via the tools of science and philosophy. Yet these tools work differently, and they tackle and reveal quite distinct aspects of “reality.”
Briefly (and I recommend the aptly named Philosophy: A Very Short Introduction by Edward Craig, Oxford University Press, 2002), those problems that start as philosophical but gradually succumb to observation, measurement, and experiment, move into the distinct (and really quite recent) domain of inquiry called science. This, essentially, is what we mean by science. The philosophers continue to debate the essence of unknowability, the ultimate whys and origins and similar unobservables, until, very occasionally, a particular philosophical proposition becomes testable in some objective sense, and moves into the scientific realm. From metaphysics to physics, in fact! A sign of this uneasy and volatile boundary between the two methods can be seen in the now-archaic term natural philosophy. This was used for the physical sciences as recently as my Cambridge days in the 1950s.
In addition to nature and philosophy, Ourusoff’s third element is CS, whereas my discussion involved the general term science. Most people tacitly assume that computer science is a proper, kosher subset of science. The term certainly suggests this, but care is needed. What we call things does not always reflect their meanings in actual usage. The so-called etymological fallacy is often illustrated by names such as pineapple (it’s neither) and Jerusalem artichoke (from elsewhere). Collocations are notoriously misleading. You can’t deduce the meaning of fat cat by looking up its components in a dictionary. Peter Fellgett infamously asked, “Is computer science?”, the rhetoric implying no. I was more cynical in suggesting that “computer science is to science as plumbing is to hydrodynamics.” Similar analogies have been mooted, such as that between Egyptian mensuration and Euclidean geometry: the usefully ad hoc compared with a unified axiomatic system, implying that CS had not yet found a Euclid.
Call in Dijkstra, who archly remarked that we don’t talk about “typewriter science.” Dijkstra also insisted that CS should be read as “computing science,” but this subtlety has not caught on. My own sympathies, having started with a pure mathematics degree before losing my virginity on EDSAC, lie with what I take to be Knuth’s spin on CS: a branch of mathematics devoted to the cost-accounting of algorithms! This subsumes many other branches of mathematics, logic, set theory, numerical analysis, graph theory, and so on. As for philosophy, it doesn’t really matter whether you are a Platonist or a Nominalist, but it’s endless fun picking sides! And so many great minds on both sides and down the middle, which is, perhaps, precisely why it’s philosophy, not science!
I mean to say, the question is, “Do abstract objects (such as numbers) really exist?” Plato, the Platonist, said yes (well, he would have to say that, wouldn’t he?). John Stuart Mill, the Nominalist, said no, of course. If you are undecided, read Proof and Other Dilemmas: Mathematics and Philosophy by Bonnie Gold and Roger A Simons, Eds. (Mathematical Association of America, 2008). A bonus is Keith Devlin’s essay, “What Will Count as Mathematics in 2100?” Don’t expect too precise a forecast. Devlin does expect that economics will be on sounder mathematical grounds by then. You may know that the Black-Scholes equation (yes, it rhymes with black holes) that provides risk analysis for derivatives, options, and futures trading was blamed for the 1978 market crash. Devlin’s paper was presumably penned before the current banking crisis had emerged, since he seems optimistic that the equations had improved (there were tweaks by Robert C. Merton, economics co-Nobelist with Myron Scholes) since 1978 and, more importantly, that dealers had learned how to use the equations properly.
Having quoted Professor Peter Fellgett, FRS, it’s sad to report that he died in November 2008, although it was mid-December before I heard the news from the Times’ obituary. He would have enjoyed the fact that I saved a stamp on the Christmas card I had planned to post. Regular readers of my columns (if such there be) will recall several references to Peter, a physicist/astronomer and first U.K. professor of cybernetics (Reading University), whose name is immortalized in the term Fellgett Advantage, a method he invented for amplifying photon beams that I never understood. One of his instruments had the most inventive acronym: GALAXY, meaning General
Analyzer for Linear X-Y coordinates. His young daughter’s experience emptying a large shampoo bottle while unattended served as an oft-quoted example of algorithmic exactitude. The label said, “Wet hair. Apply shampoo. Rub. Rinse. Repeat.”
Two examples of Peter’s linguistic precision: in his own pioneering surround-sound audio work, he insisted on tetraphonic over quadraphonic since the latter mixed Latin and Greek roots. Then, one night during a telephone chat, he mentioned, “Mary’s having a baby.” I naturally asked when the blessed arrival was due. Peter said, “Mary’s having a baby right now. I must dash...”
Imagine the set of all possible triangles in a given Euclidean plane. Can you prove that there’s about three times as many obtuse triangles as acute triangles? Extra marks if you care to generalize this result to Homo sapiens! Usual prizes.
STAN KELLY-BOOTLE (http://www.feniks.com/skb/; http://www.sarcheck.com), born in Liverpool, England, read pure mathematics at Cambridge in the 1950s before tackling the impurities of computer science on the pioneering EDSAC I. His many books include The Devil’s DP Dictionary (McGraw-Hill, 1981), Understanding Unix (Sybex, 1994), and the recent e-book Computer Language—The Stan Kelly-Bootle Reader. Software Development Magazine has named him as the first recipient of the new annual Stan Kelly-Bootle Eclectech Award for his “lifetime achievements in technology and letters.” Neither Nobel nor Turing achieved such prized eponymous recognition. Under his nom-de-folk, Stan Kelly, he has enjoyed a parallel career as a singer and songwriter. He can be reached at firstname.lastname@example.org.
Originally published in Queue vol. 7, no. 1—
see this item in the ACM Digital Library
Ivar Jacobson, Ian Spence, Ed Seidewitz - Industrial Scale Agile - from Craft to Engineering
Essence is instrumental in moving software development toward a true engineering discipline.
Andre Medeiros - Dynamics of Change: Why Reactivity Matters
Tame the dynamics of change by centralizing each concern in its own module.
Brendan Gregg - The Flame Graph
This visualization of software execution is a new necessity for performance profiling and debugging.
Ivar Jacobson, Ian Spence, Brian Kerr - Use-Case 2.0
The Hub of Software Development