Wed, Oct 10, 2007 |
Software Test & Performance Sponsored by Parasoft |
ALM
Sponsored by TechExcel |
Developer Tools
|
Security
Sponsored by Aladdin |
Development Tools Directory
|
Architecture | Business | Data | Hardware | Legacy Systems | Networks | Open Source | Languages | SOA | Social Computing | Telecom | Virtualization | UML | Web | Wireless |
Columns: | Curmudgeon | Geek@Home | Interviews | Kode Vicious | | | Conference Calendar | Issue Index | Site Map | Videos | | | |||
Queue Partners:
|
Business -> Curmudgeon -> Web Development issue
You may well expect from my title that I'm about to plumb the depths of Nassim Nicholas Taleb's theories on catastrophe and quasi-empirical randomness. I, in turn, expect that you've already read (or certainly read of) Taleb's best-selling The Black Swan - The Impact of the Highly Improbable (Allen Lane, 2006) dealing with life's innate uncertainties and how to expect or even cope with the unexpected. Coping involves learning that the right answer to some problems is, "Don't know." I was tempted to end my column right here in order to prove something or other about our many failures in predicting the future, compared with our occasional successes in "postdicting" the past. Who knows? Your "great expectations" about my ensuing discourse could be unexpectedly frustrated. Speaking of Charles Dickens's novel, recall that he did leave us a choice between a sad and a happy ending, hoping to please both romantics and realists. In fact, neither group emerges really satisfied since the ploy destroys the basic notion of a narrative unfolding as a credible mirror of real life. Dickensian reality has characters behaving against a precisely described Victorian social milieu. Either ending might be taken as plausible in the absence of the other, yet the readers are allowed to play deus ex machina or diabolus ex machina to suit their fancies. Nowadays, more in keeping with Taleb's view of life's vicissitudes, we find hyperlinked novels where the reader/browser can click away to trigger plot diversions at almost any point in the story. Taleb's titular Black Swan, of course, goes back ages as a theme in philosophical bantering. It is only to be compared with the nonsensical or oxymoronic "square circle" or "even primes greater than 2" if you start with the axiom "All swans are white," or the equivalent "All nonwhite objects are non-swans!" Once you include "whiteness" in your list of swan-defining attributes (along with neck shape and a host of other avian characteristics), then any nonwhite bird you encounter cannot be strictly dubbed a swan, however many other swan-like attributes it has. Poets were free to dream and write of black swans, but that's known in Brit pubs as "poetic off-license," a major curse in decent philosophical nattering. Indeed, up until 1697 there was no reason to doubt that all swans are white. Each swan encountered helped confirm this proposition, as did, bizarrely, the fact that each nonwhite anything we observed was definitely a non-swan! All this changed in 1697 when the Dutch explorer Willem Vlamingh reported the sighting in Australia of what he could only describe as black swans. The reports triggered many distinct reactions. The circle-squarers, angle-trisectors, and poets said, "There, we told you so. Next time, pay attention." Strict taxonomists said, "Them can't be swans, you daft Dutch sod - swans is white." Others said, "Well, all swans really are white; the black ones are exceptional mutations that need not disturb our concept of innate 'swanness.' After all, dogs are four-legged, even if Fido lost one of them under a tram." The wise said, "We must change our definition of swan." The latter won out, and taxonomists now list many members of the genus Cygnus - some white, some black, and some, for all I know, Anfield red. There was certainly a red swan event in Istanbul in 2005 when Liverpool Football Club came back from 0-3 at halftime to beat AC Milan in the European Champions Cup. How best to redefine swan in the light of new evidence? Far from being an arcane linguistic or philosophical problem, it hits us daily in many software development contexts such as object-orienteering. We may have had pre-1697 (an early Simula, presumably) the subclass Swan derived from the class Bird. Doesn't that take you back to your first OO class? CanWade; CanFly; EatsWorms; WingSpan; Color! Do we derive new WhiteSwan and BlackSwan subclasses from Swan or just play around with the defaults for Color? As John Stuart Mill, rephrasing David Hume, put it: "No amount of observations of white swans can allow the inference that all swans are white, but the observation of a single black swan is sufficient to refute that conclusion."1 Since then, Taleb has popularized the term black swan event, now being fashionably bandied around at dinner parties to cover every conceivable political and stock-market surprise. I'm reminded of the brief 1960/'70s vogue for René Thom's seven catastrophes, which, in spite of much topological innovation, fizzled out in a burst of extravagant social extrapolations. On the other hand, chaos theory has attracted a more respectable following than catastrophe theory, although the confusion over the two names is understandable. Taleb's works offer useful, readable, and witty insights into the whole field of real-life uncertainties. These are of vital importance in computer modeling of biological, financial, global climate (Al Gore rhythm, see later), and other complex systems. Security and related risk analyses have been stimulated by the black swan debate. The old deterministic view of "life as a huge case-statement" is replaced by "life as a sequence of zero-prior-probability events." Taleb addresses the hindsight paradox: that someone, somewhere did predict black swan events such as the 1929 market crash and the 9/11 attack. So, in some sense the unexpected was, in retrospect, certain to happen. There's that familiar but still-puzzling paradox of the "surprising" examination. Teacher announces on Sunday that pupils will sit for an exam on a day of the following week (Monday or Tuesday or... Friday). The announcement will not be made until the morning of the selected day, and, here's the rub, teacher declares that the announcement is guaranteed to be a complete surprise! Bright students (if any) can rule out Friday, since by the end of Thursday, a Friday exam is inevitable and totally UNsurprising. Likewise, Thursday can be ruled out as a surprise, since the range of possibilities is now reduced to four days (Monday through Thursday), so we can employ the same argument used to eliminate Friday. Proceeding in this way, we eventually rule out Monday, seeming to prove that the teacher lied: he cannot guarantee a "complete surprise" since each of the five days has been eliminated as "surprising." Some readers may still question the relevance of these excursions into philosophy, seemingly away from the hard-core, nitty-gritty of delivering code on time to an impatient market. It's certainly true that many are content simply to refine their syntax skills in order to push out bug-free systems. To this end, there are plenty of ACM sources in Queue and beyond, not least of which are the effective Kode Vicious sermons on common but avoidable coding errors. Yet a mounting theme in our industry is the shortage of competent programmers and the related problem of what sort of people are likely to "give good code." Apart from all the so-called measurable personality traits tabulated to assist recruiters (see, e.g., "Does Personality Matter?" Alessandra Devito and David Greathead, CACM, May 2007), there's a hard-to-define general problem-solving ability to juggle between the particular and the general: zooming in and out of systems maps, as it were, without losing focus. It's a valued balancing act between patient scrutiny and impatient curiosity. My sneaky, covert message is: if you think that the color of swans is simply a matter of avian plumage, it could well be that there's an element missing in your programmer's toolbox.
by Stan Kelly-Bootle, Author Submit this story to one of the following blogs:
|
ACM Home |
About Queue | Advertise with Queue | Advisory Board | Back Issues | Contact Us | Dev Tools Roadmap | Free Subscription | Privacy Policy | Writer Faq | RSS feeds |
© ACM, Inc. All rights reserved. |