August 2005 Archives

Inside the Hacker's Studio


A number of us at the CS Department at UIUC were able to end our afternoon today, at 1700 CDT, by watching a live (condign / flawless / transparent) webcast of the 2004 A. M. Turing Award Lecture from SIGCOMM in Philadelphia. The page for the webcast stated that "Ironically, this will be the first ACM Turing Lecture that is webcast live." I'm at something of a loss to explain why this is ironic. For those of us who were at OOPSLA 2004, it would be our second consecutive realtime Turing presentation.

The webcast was lead in with an ACM Logo accompanied by organ music that began to remind me of a hockey arena. I was waiting for the Canadian national anthem. Then it gradually dawned on me that the piece being played was a decidedly languid rendition of “Thus Spake Zarathustra” did little to diminish this effect. It turns out that the University of Pennsylvania's Irvine Auditorium, in which the lecture was to be delivered, is home to a 1.1e04 pipe pipe organ (see picture).

The prize was awarded in June to Vint Cerf and Bob Kahn for their pioneering work on Internet protocols. They elected to deliver their Turing "lecture" at the ACM venue of their choice: SIGCOMM.

The lecture was entitled: Assessing the Internet: Lessons Learned, Strategies for Evolution, and Future Possibilities.

I use the term "lecture" advisedly, because this dynamic duo of the datagram chose not to attempt a tag team lecture at all, but resorted instead to that quotidian staple of twenty-first century life, the talk show format.

The effect, given the stage set, and the gray-bearded, distinguished but phlegmatic, slightly diffident demeanor of moderator Lyman Chapin was nothing if not a probably unintentional echo of James Lipton’s “Inside the Actor’s Studio”.

The effect was in stark contrast to Alan Kay's California Casual high-tech presentation of a year ago, (as well as with the "IP on Anything" tee shirt Cerf claimed to have sported during the eighties). Kahn and Cerf dressed like pall bearers, decidely old-school (perhaps literally), and the faux-faculty club set showcased the shines on their shoes. The pair had evidently invested at least a little of their $50,000 shares of the prize money in wardrobe enhancement. Chapin began by patiently unzipping a leather folder and removing his paper notes. Cerf and Kahn sat with cheat sheets on their laps. For the second year in a row, no Microsoft prosthetics were in view. Indeed, no visuals of any kind were in use here.

I’ve seen this set-piece mock interview format attempted before, with mixed results. At worse, it can seem stiff and more than a little contrived. Fortunately, once they settled into things, this format seemed less and less obtrusive in this case.

Indeed, after a few minutes, given the big screen, the lecture room full of computer types, and the heady, but not excessively clinical subject matter, I started to get a bona fide conference buzz, and even began to take a few notes. Hence, this post. It’s a tad disorganized, which I ascribe in somewhat equal parts to my selective culling, and the desultory conversational format itself. The webcast will be out there on the web, of course (and it is altogether fitting and proper that it should be so, as they say in Pennsylvania), so if you’re curious as to what was actually said, by all means chase it down yourself.

Kahn opened the metaphorical anteing up with the observation that the service economy being build atop his brainchild was a like a “cafeteria in cyberspace”. Very biological, very Base-4 (Bio=Base 4, CS=Base 2) ATCG. Timely stuff…

I reached for my notepad in earnest when they started to talk about layering, and how layering was, it seemed, honored as often in the breach as by the Hoyle. I’d been looking for ammunition for a Layering as Golden Calf screed, and what better place to find it than a Turing rap. Kahn talked of layering as an implementation strategy, and one of ‘em observed that for efficiency’s sake, a more intimate design can be accommodated as well.

Then, they drifted into end-to-end allusions that are evidently orthodox shorthand before a SIGCOMM crowd. I've blathered on about the sheer brilliance of the end-to-end argument as recently as last week, and hence won't dwell on it it here. The End-to-End notion casts the internet's transport facilities themselves as a substrate, a medium, that does not pre-judge, confine, or constraint what applications can be at the Edge of the Internet.

One of ‘em (story of their lives, I’ll bet) observed that we are in a race to get those who know why some of this stuff is the way it is to say so and record this information before they are gone and no one knows at all. This is the same actuarial time bomb we are seeing with our Fortran refactoring work. Actually it is the first of several parallels I noticed.

The second was one of the evening’s recurring themes: the difficulty of even incremental evolutionary change in the face of the ossifying architectural fait accompli that the Internet has become. “Creeping incrementalism” was the best we can do, if that, it was lamented. Darwin would be utterly unsurprised to hear this… Duct tape is forever, it was more or less observed, with resignation…

Everyone committed to the internet protocols, it was said at one point, but didn’t actually use them.

Cerf (I think) extolled the virtues of a logical architecture that allows federation. (Hmmm, what year did “federation” become a buzzword?)

Cerf likened the basic internet protocols to a linear algebraic set of basis vectors, from which arbitrary vectors could be composed. I found myself thinking that as with the Von Neumann architecture, a general, blank-check mechanism for bit transport, as with bit transformation, had proven those who say general solutions never work wrong for at least this second time.

At one point, it was asked, that, given that the laureates couldn’t recognize that they were changing the world, how would we know which, among the ideas drifting through the memepool now, would have the same kind of impact. Now, I’d think, the answer is as it always has been. We’ll deploy an army of the unwitting to have them all, and let the devil, (or Darwin), take the hindmost, as always.

Cerf observed that if one wanted to design a voice network, building IP first, and then running voice over it would be the last thing one would do. But the bottom feeders are doing it. That’s what biology does, it works with what it has. Herb Simon satisfices, Gabriel and Worse-is-Better

There was less brainstorming as to the future than the billing would have had you believe. The most interesting gambit here was into the same turf Rick Rashid tried to mine at OOPSLA last fall regarding keeping “it all” around. To hear Kahn tell it, information will come into being like churn in the rabid quantum foam, most annihilating itself before ever amounting to much, some being judged worthy of enduring long enough to be subject to at least a modest amount of additional consideration…

Yet another recurring theme was networking's return to its wireless roots. The notion of an ethernet began with wireless in Hawaii. A world without wires now promises to reduce the number of remotes for which we spend half our time hunting, promised the laureates.

In contrast with 2003 Turing Laureate Alan Kay, who, at times, seems to have the uncanny ability to channel Don Rickles, and at times appears to have as his goal to leave no ox in the room ungored, attempts at humor here were few and far between. Their parting sound bite was something of an exception to this: “if it is really important, probably no one is in charge”…

What were the lessons learned? What are the strategies for evolution? Let's see, layers are good as a logical ideal, but are often ignored where the bytes hit the information highway. They could easily have riffed on patterns vs. implementation, but this memeplex seems to have spared this crowd. They seemed decidedly pessimistic about the prospects for anything but incremental evolution in infrastructural areas where the annealing process has cooled for the perhaps the last time, and tertiary constraints hamstring further evolution. They are more optimistic that there is always room at "the edge" for innovation, that the end-to-end frontier remains as open as ever.

To summarize:

  • Evolution: Tough problem
  • Layering: Honored in the breach
  • Future: Who knows?

Well, okay, after having literally slept on it for a few hours, there were a couple of somewhat forward looking notions that have come back to mind. One was Cerf's discussions of the challenges JPL encountered extending the internet to Mars. At the point where the planets are the furthest apart, this entails a forty minute round trip through the luminiferous ether. What's more, orbiting platforms and rotating planets conspire to obscure the targets for hours at a time. Such highly dispersed, and sporadically available nodes required considerable modifications to the stock design, it was said.

Another thing I didn't know, being from outside the COMM world and all, was that Kahn has had a longtime interest in object mobility. Not having pursued this, I don't know if he means the same thing by this that people in the object-oriented works used to, but if he did, this is one of those object-have-failed tales we could have milked more a couple of years ago. We never got "objects floating in a sea of computation", or the "animal kingdom" model. We got computation rooted to platforms, with data plying the ether, which is more of a "vegetable kingdom" model instead. For all sorts of reaons, security not being the least among them, this may have been, in hindsight, a more prudent (though less exciting) way to have gone...

A recurring theme was security. Cerf observed, to my surprise, that even in 1975, security work was going on in parallel with that on the public internet, but the security work was (and evidently remains) classified. The authors acknowledged that they'd never pondered subjects like the socio-economics of spam when they were building this thing. They recall the outrage engendered by the first email advertisement. I recalled what an obvious, unthinkable abuse of this honor-system infrastructure such things seemed like then, as they, in an elegiac moment, recalled the same.

Cerfing USA: Another memorable issue raised was America's inexplicable desire to unilaterally surrender her basic research capacity in Computer Science on the altar of budget cuts, particularly at DARPA, which had patiently stocked the internet punch bowl for a generation, a fact often conveniently forgotten by the free marketeers who hawk the internet as a triumph of the private sector. Without DARPA's high-RISC agenda / imperative, Dave Patterson (the ACM president) observed, neither ACM nor Stanford would have a president right now.

It's interesting how different communties have different cultures and characters, and how these characters were affected by their genesis. Objects were Scandiavian Design meets PARC / California. The Supercomputing Community are Oppenheimer's grandchildren, seeded by DOD and DOE. The Internet pioneers lived in a house that DARPA built.

The Turing Award has been called the Nobel Prize in Computer Science, in the same sense, one must presume, that a Daytime Emmy Award could be thought of as a Nobel Prize in Soap Opera.
--Thomas Jay Peckish II, on an ususual strain of Stockholm Syndrome...

Crimson Crux offers more of a straight play-by-play that complements my color commentary. They evidently thought it was funnier than I did. I guess Kay is a tough act to follow.
While the post at motz compliments my post...

Thomas Jay Peckish II on Coaching


Beware of any enterprise that employs a coach.
--Thomas Jay Peckish II

In Praise of Cut 'n' Paste


"Cut 'n' Paste", the practice of creating a new software component or application by making a source copy of an existing body of code and "beating on it" mercilessly until it meets some new set of requirements, is often treated with disdain and contempt by the traditional software engineering community and (post-)modern object-oriented methodologists alike. Despite this, the ubiquity and enduring popularity of this approach begs the question: What are these people doing right?

Evidence suggests that cut 'n' paste is a nearly essential, and nearly universal, practice when new framework applications are constructed, be they for GUI code, Eclipse plug-ins, or what have you. Adaptations to complex applications such as compilers often demand an incremental, test-as-you-go approach as well.

The advantages to this approach, naturally, are the complements of those associated with factoring out duplication. A copy provides a safe sandbox off to the side of a vital development stream. Changes made to copies cannot disrupt production code, and like duplicate genes, copies can evolve new functionality without jeopardizing existing functionality in the original. Mere copies can avoid, for a time, the intricacies associated with engineering away duplicate functionality.

Indeed, expedient code copying has long been observed to be characteristic of an early, exploratory phase in the evolution of object-oriented components and systems, but its virtual indispensability to framework developers has been less widely acknowledged.

An OOPSLA 2005 Onward! Breakthrough Ideas Micro-Screed

Big Bucket of Glue

Fishbowl Room

Back in 1994, a small group of undergraduates toiling in a round, windowless room at the National Center of Computing Applications at the University of Illinois at Urbana-Champaign produced what was certainly the decade's, and perhaps the century's most revolutionary application: Mosaic. It's praises have by-and-large been duly sung, but one of its lesser known, and most remarkable attributes was its architecture: it is was what I call a "Big Bucket of Glue". The Mosaic application actually contained very little new code. It was, instead, constructed of a thin veneer of C adhesive code that bound together a rag-tag collection of existing applications. It was a harbinger of things to come.

With the increasing popularity of scripting languages with names beginning with letters like "P", this style / school of design has become one of our current era's most frequently deployed systems level architectures. Drawing on an increasingly broad, if not rich legacy of existing applications and components of all sizes, shapes and varieties, architects increasing slather on the glue, and ship these "Big Buckets of Glue" while their competitors are still inking high-road cartoons on their whiteboards.

While the Big Ball of Mud has remained the design of choice for application developers, the "Big Bucket of Glue" is increasingly the weapon of choice for system's level integrators. Indeed, the wildly popular Eclipse platform can be seen as a collection of black-box Java components bound together with reflective XML glue.

An OOPSLA 2005 Onward! Breakthrough Ideas Micro-Screed

The End-to-End Principle and Programming Language Design


Earlier this year, I finally came across one of the greatest "classic" papers I'd never read: "End-to-End Arguments in System Design" by Saltzer, Reed, and Clark. The end-to-end argument was developed in the realm of internet protocol design. Succinctly put (and this format allows for no alternative) it argues that facilities, such as error checking, which one might be tempted to place at the lower levels of a system or network, might actually be redundant, and therefore useless at the lower levels, when they must be included in the upper levels of the system as well.

We argue that this argument applies as well to programming language design as it does to networking. For instance, facilities that some languages provide for security, protection, synchronization, namespace management, or type checking must often be re-implemented in applications programs in a variety of different ways, many at odds with the manner in which these facilities were provided in these underlying languages. Such duplication raises the question of why these now redundant facilities need be present in these programming languages at all.

This argument suggests a simpler, more dynamic approach to programming language design, based on an end-to-end analysis of the kinds of facilities users really use, may be better suited to the demands of our clustered, networked, threaded multi-core 21st century world.

An OOPSLA 2005 Onward! Breakthrough Ideas Micro-Screed

Thomas Jay Peckish II on Travel


I always ask for a middle seat when I travel. It's such a great way to meet people...
--Thomas Jay Peckish II

About this Archive

This page is an archive of entries from August 2005 listed from newest to oldest.

June 2005 is the previous archive.

September 2005 is the next archive.

Find recent content on the main index or look in the archives to find all content.


November 2012

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  

Brian's Links



Brian Marick
Martin Fowler
Ralph Johnson (That's Completely Bogus!)
Dave Thomas (The Pragmatist)
Glenn Vanderberg
Patrick Logan
Lambda the Ultimate
Joshua Allen (Better Living Through Software)
Mariann Unterluggauer (Motz)
James O. Coplien
Eugene Wallingford
Blaine Buxton
Nickieben Bourbaki
Travis Griggs
Ivan Moore
Mike Mikinkovich
Superboy & Ward
Rebecca Wirfs-Brock
Nat Pryce
Tim Ottinger
Forrest Chang
Gregor Hohpe
Sam Gentile
Robert Hanson
Chad Fowler
Jonathan Edwards
James Robertson
Bruce Eckel
Andrew Stopford
Tully Monster
Grady Booch
Dave's Ramblings
Solveig Haugland
Dave Hoover
But Uncle Bob
Doug Schaefer
Ted Leung
The Farm
Ian Clysdale (Random)
Gilad Bracha
Keith Devens
Urbana-Champaign Techophiles
Stefan Lauterer (Tinytalk)
Planet Python
Chris Koenig
Peter Lindberg (Tesugen)
Jason Yip
Sean McGrath
Jeff Erickson (Ernie's 3D Pancakes)
Steve Freeman (Mock Turtle Soup)
hakank (komplexitetemergens)
Deciduous Ponderings
Take One Onion
Ken Schreiner
Michael Mahemoff (Software as She's Developed)
Champaign Media Watch
Jason E. Sweat's Weblog (PHP, etc.)
Raymond Lewallen (Code Better)
Keith Ray
Raymond Chen (The Old New Thing)
Neil Gafter
Joe Walnes
Ivan Moore
LD/dazza (Lost in La Manche)
Scott Rosenberg (Wordyard)
Dave Stagner (Sit down and shut up!)
Walter Korman (Lemurware)
Munawar Hafiz (The space between)
Rafael de F. Ferreira (Rafael Rambling)
Mike Hostetler (Where Are The Wise Men)
Jordan Magazine
Andriy Solovey (Software Creation)
Mike Griffiths (Ideas and essays on code development)
Ashish Shiraj (Ashish Kumar -- Software Test Engineer)
Nathaniel T. Schutta (Just a thought...)
Lynn Cherny (Ghostweather R&D Blog)
Dominique Boucher (The Scheme Way)

Powered by Movable Type 5.14-en