Thomas Jay Peckish II on Scientific Revolutions

|

One of Thomas J. Kuhn's most trenchant observations was that the bond between Parent and Brainchild, for most, remains unshakable even in death.i>
--Thomas Jay Peckish II

Thomas Jay Peckish II on 21st Century Software Engineering

|

Open-Closed Principle? OCP? Make that private and Young Hakaz gonna copy-paste that pretty little banzai meditation garden of yours and do what they want to it. Encapsulate this yo.
--Thomas Jay Peckish II

Yo Hakaz! I chased it / and I faced it / and I cut it / and I pasted / I could taste it / 'til I wasted it.
Peace.

--Thomas Jay Peckish II

Thomas Jay Peckish II on Life and Death

|

Skills are important. A surgeon screws up, a person dies. A programmer screws up, a process dies. The stakes are identical. Unless you think a process is worth less than a human life...
--Thomas Jay Peckish II

Thomas Jay Peckish II on 21st Century Epistimology

|

Page Rank has become, almost w/o anyone noticing, the very cornerstone of 21st Century Epistemology.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Programmers

|

All too many programs are made in the images of the people who create them: complex, technically sound, but ineffective, often woefully, at communcating with human beings. Why are we surprised?

--Thomas Jay Peckish II

The tweet looked like:

Too many programs are made in the images of those who create them: complex, technically sound, but poor at communcating with human beings.

which may actually be a tad better...

 

Blue Mud in Oakland

|

The San Franciso PostGreSQL Meetup Group will be host a presentation by Fred Moyer entitled Big Blue Ball of Mud tonight in Oakland.

I have no idea where the "Blue" came from. Adult content? IBM? The Democats? In any case, Mudheads Unite!


http://www.redhotpenguin.com/talks/npw2007/ball_of_mud.html || http://conferences.yapceurope.org/npw2007/talk/493

The Mound Builders of Mountain View

|

In what turned out to be a de-facto tenth anniversary observance of the conception of our epic spasm of pomposity Big Ball of Mud, I was asked to give my very first presentation of this work as a Google Tech Talk last month in Mountain View. The announcement for it read:

While much attention has been focused on high-level software architectural patterns, what is, in effect, the de-facto standard software architecture is seldom discussed.

A Ball of Mud (http://www.laputan.org/mud/mud.html) is haphazardly structured, sprawling, sloppy, duct-tape and bailing wire, spaghetti code jungle . We've all seen them. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated. The overall structure of the system may never have been well defined. If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems.

Still, this approach endures and thrives. Why is this architecture so popular? Is it as bad as it seems, or might it serve as a way-station on the road to more enduring, elegant artifacts? What forces drive good programmers to build ugly systems? Can we avoid this? Should we? How can we make such systems better?


Brian Foote is a research computer scientist with nearly thirty years of professional programming experience. He cut his computational teeth in the realm of realtime scientific programming. The highly volatile requirements present in this domain led him to an interest in objects, reuse, software reuse, frameworks, components, and, ultimately, reflection and metalevel architectures. He is one of five people to have attended every OOPSLA conference since 1986.

He has also been active in the software patterns community, and edited Pattern Languages of Program Design 4. He was instrumental in gaining the conviction of the so-called Gang-of-Four (Design Patterns authors Vlissides, Johnson, Helm, and Gamma) for Crimes Against Computer Science at OOPSLA '99.

Brian is currently a Senior Pontificator at Industrial Logic, Inc., where he has been spreading the Gang of Four's Gospel to a new generation of Googlers.

Though Big Ball of Mud has been Slashdotted twice, and is probably his best known work, this will be Foote's first live, full-dress presentation based upon this material.

It went, well, God help me, something a lot like this:

Comments from LD || Referral from Best Tech Videos || วีดีโอพรีเซนต์เตชั่น Big Ball of Mud ที่ Google || Is your newspaper.com a big ball of mud? || soft wet earth || The $100MM Canonical Model || KLOCs and Golf Scores || Big Ball o' Mud: Code Tangles and Organizations

Thomas Jay Peckish II on 21st Century Media

|

Putting a talk on the web is like donating your body to science. You know it might be dissected in various unspeakable ways, by who knows whom, and that you won't be around to have very much to say about it...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Fear of Failure

|

Q: What happens to people who are afraid to fail?
A: They fail.
--Thomas Jay Peckish II

Thomas Jay Peckish II on Professionalism

|

Do you really want the guy performing your triple bypass reading Surgery for Dummies before he gloves up?
--Thomas Jay Peckish II

Thomas Jay Peckish II on Diffidence

|

It’s better to be obnoxious than to be diffident...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Hacker Demographics

|

You don't see a lot of former high school quarterbacks throwing exceptions for a living...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Where Experts Come From

|

People like to think of experts as being the guys who are always right. Nothing could be further from the truth. Experts are people who are not afraid to be wrong. A lot. That's how they get to be experts.
--Thomas Jay Peckish II

The continuing controversy over Scrum Certification evidently inspired the following "press release", which was circulating at the Agile 2007 Conference this year. While its authenticity, or, to be more precise, its lack thereof, is no longer in dispute, you may nonetheless find it amusing.

REVOLUTIONARY NEW PROCEDURE DECREASES SCRUM MASTERBATION

Press Release, 15 August 2007

*REDACTED*, Inc., is pleased to announce that we will be able to offer safe, somewhat affordable Scrum Circumcision™, for the first time, to our preferred clients, beginning in September of 2007.

Scrum Circumcision™ is perfect for the software professional who is looking for a way to distinguish himself from, shall we say, the unwashed masses.

This revolutionary procedure entails the surgical removal of the patient's foresight. The effects are similar to a traditional XP lobotomy, though Scrum Circumcision™ is typically considerably less invasive.

Research has demonstrated that excising one's foresight can reduce premature generalization, improve code hygiene, and increase pairing satisfaction.

Customers usually report that they feel their XP-ness is dramatically enhanced after undergoing this procedure, and often experience stronger, more robust iterations.

Warning: stubbornly retaining your foresight may cause you to be subjected to ridicule and derision by your peers. Trim that foresight now, and transform yourself into a peak performer.

Act today. Our certified Mohelim are equiped with the lastest, most modern tools available, and are are waiting for your call. Remember, this procedure becomes more painful the longer you wait.

Foresight You're Not Gonna Need It™.

*REDACTED* president *REDACTED* denounced the faux press release as a "crass, puerile fabrication". Said *REDACTED*:

While we have mixed feelings about the necessity for formal certification procedures for any agile methodology, we see no reason to question or mock the motives of anyone advocating such credentialization. Frankly, I'm disgusted.

Regrettably, it appears this fabrication may have been the work of one of our own employees. Should this turn out to be the case, we assure you that the individual responsible will be sternly reprimanded.

The memepool is, after all, mankind's most magnificent achievement...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Metaphor

|

When it comes to artifacts fashioned from bits, metaphor is destiny...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Teleonomy

|

Design the human body? You couldn’t do it. It is intricate beyond your wildest imaginings. The genome is smarter than you are! Way smarter.
--Thomas Jay Peckish II

Thomas Jay Peckish II on the Role of Computer Science

|

The role of a Computer Science Department should be to provide a forum for the study of its indigenous subject matter, code, bits, The Program, and not a permanent venue for the Special Olympics of mathematics...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Finding the Last Bug

|

Bugs are like prime numbers. You can never really find the last one, but after the first billion or so, they start to thin out a little bit...
--Thomas Jay Peckish II

Thomas Jay Peckish II on Creation 2.0

|

In the Beginning there was the Word, or at Least the Byte...
--The Rev. Thomas Jay Peckish II

A Tip of the Hat

|

A tip of the hat to fellow townsman Ken Schreiner for his kind words for Catfish in the Memepool over at Schreiner Video.

Ken evidently numbers his Georges relative to specific dynasties, rather than relative to the founding of the republic…

Thomas Jay Peckish II on Americana

|

Superbowl Sunday is unquestionably the most vulgar of the Great American Holidays...
--Thomas Jay Peckish II, during an uncharacteristic culturally supercilious moment...

Flogging a Dead Horse

|

I was greeted the other morning by an email from a colleague to one of our local mailing lists inquiring as to whether this artfully crafted conference web page parody was my Machiavellian Invention. Anytime something a tad puckish comes along, they blame me. Were this really a "Machiavellian Invention", the authors would have loaded it up with AdSense tiles and tried to get it Slashdotted.

Multiple sources are telling the Laputan Press that Waterfall 2006 is the heretofore unacknowledged brainchild of a prankster by the name of Mike Cohn...

Having somehow missed the CFP, I informed one of the organizers that I'd just take Salmon Ladders: Adding Feedback to the Waterfall Model Saves Fish, and Keeps your Project from Spiraling Down the Drain somewhere where it was wanted. I received this rather brusque reply:

A talk about feedback ("going upstream") would be entirely inappropriate at this conference. Feedback is only needed if there's a chance you might get things wrong. If you do things right, you won't get things wrong. All it takes to do things right is to Follow The Bloody Process. Already, we see that not enough of the speakers realize the importance of this simple principle. We don't need any more apostates.

This all said, the mirth and glee on the part of the agile insurgency associated with the ritual mocking and flogging of this dead horse is sadly misplaced. This horse is very much alive and with us. Once again, commando coders working in teams of sizes 100 and 101 go about their work oblivious to the machinations of the infantrymen in the trenches of the 102 and 103 world, where callous officers are still re-fighting World War I. Herein lies a tale, albeit for another day.

To paraphrase George Bernard Shaw, the big-iron SEI worlds and the XP Agile cultures are two peoples divided by a common tongue. I'm amazed how many times over the last twenty years I've heard commando and infantry people us the same language to describe radically different realities, completely oblivious to these differences in style and scale. At each of these scales, its denizens take it as implicit that their reality is the reality. Such assumptions are largely unspoken, and surprisingly pervasive. When one's context changes slowly, if at all, the temptation to postulate that which is stable and persistent in that context must hold universally can be hard to restrain.

This kind of context sensitivity is one of my favorite things about patterns.


More Waterfall 2006 commentary can be found here and here. Tags:

STS-25

|

Given my penchant for pasting images into my posts, you'd think you'd be staring at one of those awful pictures from twenty years ago today right now, wouldn't you?. But plenty of people are posting those today, and I can still barely stand to look at them, twenty years later. Like the second plane hitting the South Tower, it's still too wrenching to watch.

January Twenty-Eighth is one of those dates etched in my mind, like 12/7/41, 11/22/63, 11/9/89, and 9/11/01, not just this year, but every year. I was a Kennedy-era kid who used to get up at 4:00 in the morning to watch Mercury launches. NASA TV is one of my favorite cable channels. I don't need to see the pictures. Apollo 1, Columbia, it's a busy season, alas.

As I was waking up this morning, I was recalling that scene, right after "go at throttle up" and trying to place what it was that it was reminding me of. I imagined myself looking up the stem of a giant poppy plant, with the poppy bulb at its top where the big external fuel tank explosion billow was. Here's a picture of a poppy bulb from the top.

I still breath a little sigh of relief during every live launch I've watched since when those SRBs peel off. "Get the hell off you SOBs!", I'll think to myself, chuckling in relieved amusement at my own puerile pun.

I was home on my old couch that day, working (according to my notes) on my Masters Thesis, of all things. In fact, the scene seen from inside my picture tube was probably not all that much unlike the one shown here. I was sitting with the TV off when my sister called up and said "the space shuttle just blew up!"…

But my purpose at the moment is not to merely to add to the chorus of somber reminiscence…

…except to perhaps add that whatever differences I might have had with The Gipper and his Gang, Peggy Noonan's tasteful plundering of the first and last lines of High Flight remains the high water mark for post-Kennedy administration presidential eloquence to this very day.

…in fact, my original purpose was to use this post as a introduction to some ruminations on the limits of reuse, but I think I'll try to put those together separately, and just finish this one here instead…


From a memepool epidemiological standpoint, I wonder how many posts today will contain the phrases "etched in my memory", "major malfunction" or "surly bonds of earth"… …I suppose when you are president, any use is fair use, attributed or not…

Thomas Jay Peckish II on Refactoring

|

We'll know that refactoring has really arrived when Microsoft starts marketing Word as a refactoring tool for your prose...
--Thomas Jay Peckish II


You know, over the last couple of days since I've posted this hoary quip, it's occurred to me that there actually may be something to the idea of bringing refactoring tool ideas into the realm of prose cultivation. I wonder if there are tools like this out there already?


Indeed, witness this observation on this topic...

Ugly Stereotypes

|

Here's yet another scientific finding that will reinforce some ugly stereotypes about software professionals. The authors exhibited commendable restraint in avoiding a rather obvious, but puerile, opening for humor having to do with baseball equipment…

Bush Lite

|

It looks like our up in America's unfinished attic are changing their lead dog and veering their sled-of-state a touch to the right. It seems as if some among the current team had been sneaking a snack or two from the wrong bowls.

Catfish congratulates PM-elect Stephen Harper on his avalanche victory... …he seems to be the beneficiary of some bizarre hemispheric karmic balancing act involving Chile and Bolivia

All and all I'm reminded of my favorite Canadian joke, a tidbit I picked up from the old National Lampoon sometime during the early seventies:
Q: When Wake Up Little Susie was number one in the United States, what song was number one in Canada?
A: Who cares, but three weeks later it was Wake Up Little Susie.


Lest anyone think I've singled out The Dominion, the "Lebensraum-lite" undercurrent underlying the versatile geopolitical jape with which this post opened can also be retargeted to construe Australia as "Indonesia's unfinished basement", or Siberia as "China's unfinished attic"…
--TJP2


Robert Biddle subsequently added, re: Wake Up Little Susie:

In fact, this was also the number one song in Canada the week before it was in the US. http://en.wikipedia.org/wiki/Number-one_hits_of_1957_%28USA%29 http://www.1050chum.com/index_chumcharts.aspx?chart=21 As if I care...

Impossible Design

|

Mariann Unterluggauer reports here on the latest ruminations from peripatetic software visionary and Catfish favorite Richard P. Gabriel at the OOP 2006 Conference in Munich. Dick, whom it would appear is riding a sustained wave of popularity in Europe, summoned his inner Cervantes to deliver a talk provocatively entitled Impossible Design...

The Mind of the Theoretician

|

I have struggled for, let's say, way longer than is good for a person, to comprehend the mind of the theoretical computer scientist. I've met with mixed success at best over the years, but this post offers more insight than most into the monastic deliberations of this secular priesthood...

A postscript: I've been causally browsing "Ernie" occasionally for the last couple of three or four months, but I'd never hunted around enough to discover that Ernie's Gepetto is UIUC DCS's own Jeff Erickson. I'm reminded of one of those horror stories that ends with "run for your life, that phone call was made from inside the building!". I might add that I completely concur with Steve Freeman's observation that Erickson's work in this area is likely applicable, with appropriate revision, to conference committees in general.

The Physicists Took the Easy Problem

|
Alan H. Guth

The reader may well be surprised that scientists dare to study processes that took place so early in the history of the universe. On the basis of present observations, in a universe that is some 10 to 20 billion years old, cosmologists are claiming that they can extrapolate backward in time to learn the conditions one second after the beginning! If cosmologists are so smart, you might ask, why can they predict the weather? The answer, I would argue, is not that cosmologists are so smart, but that the earlier universe is much simpler than the weather!
--Alan H. Guth, on Condensation of the Primordial Soup, in The Inflationary Universe, p. 89

I used to be fond of amusing my friends and colleagues who were trained as physicists by asserting that they were able to give the appearance of being more serious scientists than computer scientists because they'd grabbed the easy problem first. Not only that, they've got a worked example in front of them to examine. And they had a head start. I was amused yesterday to find this passage from Guth that lent evidence to this cherished, long-held suspicion…


Stefan Lauterer weighs in with some thoughts on the connection between this and Austrian politics here.

God Save the King

|
George III George III

Given that the terms of the current United States Constitution remain in force and are duly honored, and barring calamity or disgrace, the reign of His Imperial Majesty George III will come to an end, with the Coronation of his successor, whomever he or she may be, exactly three years from today, on 20 January 2009, at 12:00 EST, 11:00 CST.

I'll leave it to the reader to decide whether this is good news or bad news.

That's right, this is our third ruler named George. His father was our second. The father of our country was the first. Our last ruler under British authority was also called George III. His poll numbers weren't the greatest either. What goes around...

It may seem odd that I notice this date every year, but it has a way of being a personally auspicious occasion. Witness, for instance, this post. We reckon time by the reigns of our regents, and since the days of Franklin II, this has been our official ceremonial day of transition. Of course, I'd pretty much beaten this topic to death last year too...

Guten Tag

|

As part of a effort to try to figure out what this "tagging" craze is about, I've created a Technorati Profile. Let's see if I regret it.

It seems likely that I'll need to upgrade Movable Type to really put this stuff through its paces, and thereby begin to form an informed opinion, but that will have to wait. As ace, recovering System Administrator Thomas Jay Peckish II always says: "Don't mess with it if you don't have time to break it..." or something a lot like that.

Now, an MT upgrade could well allow Catfish to allow comments too. Hmmm…

In the meantime, at least my bilingual pun drew a chuckle from a prominent member of the Pan-Teutonic Tech-Journalistic Community...


So, anyhow, here goes:


So, here's what Technorati coughs up for TJP2. I'm still working on getting the hang of how to get these things to work:

Posts that contain Thomas Jay Peckish II per day for the last 30 days.
Technorati Chart
Get your own chart!

Tom Lehrer on Originality

|

It has long been my largely unrealized intention that an examination of the changing nature of originality in the twenty-first century, in an age of sampling and search engines, on a planet of seven billion souls, be an underlying, recurring, unifying theme of Catfish in the Memepool. My recent AJAX post is a case in point.

Paul Saylor

So, it is in this spirit that I'm going to indulge myself in a bit of personal nostalgia. Our peripatetic (but by no means itinerant) IBEAM Project Principal Investigator, Paul Saylor, made a scheduled stop at the Siebel Center as part of his winter tour last week, and was able, after an impromptu meeting, to offer me a ride home.

Paul is afflicted, thankfully, to a lesser degree than yours truly, with a weakness for the occasional dram (or is it a snifter?) of purple prose, and is, at times, well, a fellow big-word-using guy. It should suffice to say we are co-enablers when we get together.

It so happens that Paul had a CD by satirist and mathematician Tom Lehrer in the player in his rented van at the time. It engendered a veritably Proustian onslaught of rapturous recollections.

Tom Lehrer

Graeme Cree has described Lehrer rather well: "If you've never heard him, he's very similar to Mark Russell, except that he's funny."

As it happens, my dad was a big fan of Lehrer's records when I was growing up. I think he got them through a record club. We used to sit around the living room and listen them on our Motorola console stereo with him back during the reigns of John V and Lyndon I. I was just in elementary school in those days, and most (but not quite all) of the sociopolitical allusions were doubtless lost on me at the time. Nonetheless, my siblings and I somehow found them infectiously hysterical anyway, and I still remember them vividly (well, better than I have any right to be able to expect to be able to, anyway).

Still, I'd completely forgotten that Lehrer had written one tune in which he actually incorporated the names of all 102 of the known elements in the periodic table at the time, but there it was, and the conversation somehow turned to Lobachevsky. Lobachevsky, as Paul knew better than I, was the "father" of the hyperbolic strain of Non-Eulcidan geometry. The conversation quickly turned to intellectual paternity in general, even as the CD player turned to Lehrer's commentary on it.

It seems certain that I hand not heard this tune in forty years, long before I became a ivory tower hired-hand. But, suffice to say it sounded more relevant today than ever. Rather than comment any further on it myself, I urge the reader, should he or she be so inclined, to pursue the following primary sources: The lyrics are here. An MP3 can be found here.

In a similar vein, Lehrer's scathingly brilliant Werner Von Braun can be taken as trenchant, if not still timely, commentary on the compromises that are sometimes necessary to fund one's research.

Once the rockets go up...


Original thought is like original sin: both happened before you were born to people you could not have possibly met.
Fran Lebowitz

I don't have ideas. Ideas have me.
Thomas Jay Peckish II

And then I write
By morning, night,
And afternoon,
And pretty soon
My name in Dnepropetrovsk is cursed,
When he finds out I published first!
--Tom Lehrer, Lobachevsky

A footnote: Among the things I've always hoped to feature in Catfish in the Memepool were amusing tales of the sheer futility of the pursuit of original thought, especially in light of the fact that search engines have rendered it trivial to disabuse one's self of such notions. Its great sport. This is not to say that such occurrences are not original in the sense that they were independently conceived, just that such conceptions are more often than not unique. It's as if the memepool itself is ripe with certain notions, and we are merely channeling it. Channel Catfish…

Today's example: Here's a three-year old occurrence of the term meme-slinger I'd secretly, vainly hoped I might have minted in that AJAX post last week. Hackneyed though it may be, it still fit its subject to a tee…

--BF, just another Memepool Medium…

La Rochefoucauld on Humility

|

Humility is the worst form of conceit.
--François Duc de La Rochefoucauld

Before Coffee

|

Evidently, you may often be in worse shape during the first few minutes after waking up than you might have been when you retired the previous evening.

An amusing item from CNN this morning: "For a short period, at least, the effects of sleep inertia may be as bad as or worse than being legally drunk," said researcher Kenneth Wright of the University of Colorado at Boulder.

Evidently, parts of the cortex do not rouse as quickly as other parts of the brain, hence a potentially (quite literally) groggy degree of impairment. This explains, in part, why I've managed over the years to make every conceivable mistake one can think of getting the coffee maker started... ...from forgetting the coffee, the water, the filter, the grinder, right through to the "on" switch ...before those higher cortical functions had woken up and kicked in...

What's next, holding the sandman accountable to dram shop laws?

What's New Here is that Nothing is New Here

|

What's new here is that nothing is new here.

I used this phrase nine years ago to open an obscure spasm of pomposity that opened the Pattern Languages of Program Design 3 book to describe the patterns movement itself. But, in the spirit of that piece, I'm going to shamelessly recycle it here, because it fits Ajax, that trendy, breakout postmodern school of web application design, to a tee.

The fascinating thing about Ajax is that it is an amalgam of existing technologies that all date back to the twentieth century. It's what the Web 2.0 crowd might call a mash-up. Only the name is new.

Jesse James Garrett

"Ajax" is short for "Asynchronous JavaScript + XML". This moniker (not the technology itself) is the brainchild of a meme-slinger who calls himself Jesse James Garrett, a handle more redolent of saddle soap than household cleaner. Garrett rides for a high-end Bay Area Buzz Boutique calling itself Adaptive Path. Garrett makes no intellectual paternity claims for the ideas proper, only for the name and the description. His web essay, Ajax: A New Approach to Web Applications cites several know uses for Ajax, and lists some defining characteristic of this style of architecture. In short, his essay is really quite pattern-like, though I don't think he claims as much. He'd certainly be entitled to do so. In any event, Garrett's essay, by conferring a name on this otherwise ineffable architectural notion, has put both Ajax and "Ajax" (to say nothing of Garrett himself) on the map.

Sun, for its part, is cautious about embracing the Ajax handle, but is not coy about this school of design itself.

Indeed, it's not clear that anyone claims to have actually invented Ajax. Instead, ad hoc designs using these technologies, such as Google Maps, Flickr, and the like, have appeared and incrementally grown more elaborate, and more refined right under everyone's noses for the last couple of years. Such is the face of innovation in the 21st century.

Now, Michael Mahemoff has exhibited no compunction in calling a pattern a pattern. Ralph Johnson pointed out this website a few weeks ago for a forthcoming book on Ajax Patterns. It is tastefully rendered, and quite engaging. I commend it to the reader's attention.

if nothing else, Mahemoff's site has encouraged me to take a harder look at MediaWiki as a pattern cultivation tool (though I've yet to do so.)

A few thoughts on Ajax:

It should go without saying that like so much of "architecture" in the web services realm, Ajax is a Worse-is-Better poster child.

Ajax applications typically shift control of an application back from the serve to the client side using a client side "engine" written in Java script. This engine communicates asynchronously with the server using XML. The server side could be written using nearly anything, but typically is written in a scripting language like PHP, Python, Perl, or Ruby.

Ajax, it would appear, has as it basis the groundbreaking architectural premise that a local rendering engine that buffer's communication with remote servers can provide a more satisfying, more responsive interactive experience to the user than can websites without one. (There I go with that tone that may strike readers as a touch sarcastic. I assure you that I don't have a sarcastic bone in my body.)

Under the hood, Ajax is an unspoken triumph for object-technology. JavaScript, PHP, Python, even Perl: all OO.

Why XML? For one thing, as always, XML can effortlessly traverse that semi-permeable membrane, that blood-brain barrier, Port 80, and hence walk through firewalls that would impede other vectors for virtual matter.

Why Javascript? Why did applets fail, and JavaScript win? Why now? It would seem that Ajax is (also) a poster-child for Moore's Law, and rolling obsolescence. Sometime around the turn of the century, 1GHz machines were all the rage, and now, the trailing edge of this Moore's Law curve has reached this point. The Ajax phenomenon is driven by the trailing edge of Moore's Law. That is to say, one can pretty much assume everyone has at least a 1GHz machine, and Windows XP or equivalent OS. Furthermore, the browser wars have essentially assured us that the vast majority of users have Javascript on the client side.

Code that would have performed unacceptably under scripting languages like JavaScript, or PHP, or Python for that matter three years ago, will run just fine now. Finally, we are spending some of our Moore's Law dividend fruitfully on something other than GUI eyewash.

In 2006, we can assume that script code that would have taken a DLL ten years ago, or a JIT'er five years ago, will run fine as-is. We can assume that the typical user buys in at broadband, and that bloated XML packets will not clog his or her plumbing. We can assume that a browser that runs JavaScript is at least in the user's back pocket. We can assume graphics horsepower that would have dropped jaws during the Clinton administration. We can assume that a 60Mb IE RAM footprint will draw only yawns. We can presume that machines that run at mere Megahertz clock rates are headed back into the closet.

Of course, the same reasoning applies more or less to just about any "LAMP-based" design.


James Governor concurs that Garrett's is a pattern naming coup here. [Michael's Ajax Patterns Tag]

Carver Mead on the Dark Age of Theoretical Physics

|
Carver Mead

I came across this utterly fascinating, four-year-old interview with Carver Mead in a weblog calling itself Laputan Logic, of all things. The "dark age" he refers to is the last seventy years...

I last came across Mead at the very first International Conference on Neural Networks in San Diego in 1988. His iconoclastic embrace of neural networks, which were then themselves just emerging from a twenty-year "dark age" brought on by their having been declared heresy at the hands of orthodox AI Perceptron critics like Minsky and his ilk, had impressed me at the time...

Freedom from Choice

|

In ancient Rome
There was a Poem
About a Dog
Who found two Bones
He picked at One
He licked the Other
He went in Circles
He dropped Dead
--Devo, Freedom of Choice

I stumbled across an interesting discussion in from Ruby-land through a link on Martin Fowler's website. At least I thought I did, I can't find the reference now. No matter I suppose.

It’s an intriguing, but somewhat iconoclastic idea from David Heinemeier Hansson, by way of meme consolidator Tim Case, to the effect that the notion that a framework be an ultra-flexible jack-of-all-trades has run its course. The claim is that frameworks that employ fixed conventions in lieu of elaborate configuration mechanisms are easier to learn and use, at least in the most typical and common cases. A framework should be really really good at one thing. It should do one thing, and do it well.

At first blush, this would seem at odds with conventional / customary / traditional framework development lore. Nonetheless, I find the idea quite compelling, given the right circumstances…

My first thought is that it is a sign of a healthy, mature ecosystem that the carrying capacity for frameworks that do a single thing well exists. Code that does one thing right can be easier to read, and easier to extend (using code), that code that straddles a range of requirements. There is an element of neoteny, of reverting to a less mature form in this. This is what a green fields framework often looks like too, at first.

Normally, over time, as new requirements emerge, the framework grows, to accommodate a range of requirements. The code to accommodate this variety, this diversity, is refactored as the framework grows, the commonalities rise, as if in some code chromatographic centrifuge, to the upper levels of the class hierarchy, and out into distinct components, and yes, out into the data, and into databases and configuration files.

The prize: flexibility, market share, and libraries of redeployable abstractions. The price: inevitable complexity, and a steeper learning curve.

Reversion to convention marks a break with such evolutionary trends, with midlife growth. It is tempting to speculate that such breaks are inevitability generational. That drawing-back-to-leap entails a fresh draft, a new generation, a new codebase. Hence, I suspect, the phenomenon discussed here is not warmed over YAGNI (You are not going to need it); not a response to premature generalization, but a late, mature reaction to a rising tide, and a mature understanding of where flexibility is needed in a given domain, and where it is superfluous.

Neoteny is a "back to the future" reaction, in some ways, but not a "worse is better" reflex.

An analogy drawn from the realm of stadia in the United States came (once again) to mind. During the sixties, multipurpose facilities that could accommodate the needs of several sports were constructed. They met those of all of them adequately, but met none of them well. Is a Swiss Army Knife ever really better that the right tool for the right job? Or is it just easier to afford and to carry?

During the nineties (and beyond) these cookie-cutter concrete white elephants were razed, and replaced with single-purpose facilities better suited to just baseball, or just football. Even adjusted for inflation, these replacements were considerably more expensive than the stadia they replaced. But a bigger, more affluent population, craving the thrill of vicarious victory enough to support skyboxes and three-figure seat prices, was able to support this extravagance.

Could it be, that in a red-shift, expanding universe, the growth of the internet itself, and of web application demand, is such that we now have niches for single-purpose frameworks that might only have been filled by less satisfactory general purpose code even five years ago? There is a slightly decadent, postmodern redolence about all this.

Is there any way that conventional frameworks might exhibit this same level of convenience? Perhaps, if their elements are engineered to WORK OUT OF THE BOX. By exhibiting, generating, and maintaining reasonable defaults, programmers might provide the same kind of 80% / 20% Pareto's Law hands-free convenience to the bulk of their clients, while still being able to cater to more exotic tastes as well.

Now, to be fair, one of the factors at play here is that (post-)modern scripting languages like Ruby are easier to change than relatively hidebound type-pecked tongues such as C++ and (alas, now) Java. I'm recalling Kent Beck's observation that were coding to become infinitely fast, we wouldn't need to worry very much about reuse. The fast-on-their-feet scripting cultures of Amazon and Google lend some credence to this world view, it would seem…

Freedom of Choice
is What you Got
Freedom from Choice
is What you Want
--Devo, Freedom of Choice

The Least Understood Thing in Computing

|

Journalist Mariann Unterluggauer has latched onto this challenge question from OOPSLA 2005. Here's the question, with my reply:

Q: What is the least understood thing in computing that if only it were understood, everything would change?
A: That's easy: Reflection...

In a truly just universe, dogs would live as long as people do...
--Thomas Jay Peckish II

OOPSLA 1989 in New Orleans

|

Doctor Dobb’s Journal stalwart Michael Swaine has some recollections of his last time in New Orleans that resonate with mine...

Indeed, Swaine’s post triggered a number of memories. One was a tale I related during our OOPSLA XX retrospective, but forgot to post here of an epic OOPSLA IV paper airplane contest at the New Orleans Hyatt. The Hyatt chain used to like to distinguish its hotels with daring feats of architectural legerdemain in their central atria, and the building in New Orleans provided the ideal setting for this contest. This contest was ultimately won with a breathtaking twenty-nine story corkscrew spiral into a ground-floor fountain by a entry crafted by Bjorn Freeman-Benson. An audacious display of atrial flutter. Memories of this site came back to me during the Katrina coverage.

In the spirit of free association, that Freeman-Benson recollection also triggered another Proustian recollection of good food, Bjorn's Bacchanalian gout-fest at OOPSLA '98.


Ironically, I became aware of Swaine's piece through an utterly unwarranted pot shot taken by some unctuous coprophagic who evidently treats the internet as his personal scratching post. This sort of puerile ad hominem invective is the kind of thing that give 'blogging, and yes, even sarcasm itself, a bad name. A side effect of totally disposable email addresses and weblog accounts is that they offer malcontents like this one anonymous access to single-use sniper’s nests…

The Nexus of Guts and Glitz

|

Count on Martin Fowler, that technosexual trendsetter at the tony House of Thoughtworks to stir up the season’s most colorful and provocative design dustups… …Okay, I’ll stop… …but here’ s the controversy…


Martin has of late fallen under the spell of Ruby, a dynamic postmodern scripting language billed as a pragmatic amalgam of Smalltalk and Java and what-have-you. Smalltalk’s soul in Java’s clothing, with a dash of Python. I have been hearing a lot of good things about Ruby.

Anyway, many proponents of Ruby, it would seem, espouse what they call Humane Interface design. A humane interface places a premium on programmer convenience, and may be quite a bit larger than the Minimal Interface necessary to expose an abstraction’s basic functionality. The humane approach provides a more ornate, more verbose vocabulary to the programmer, as opposed the smaller, more austere, more Spartan, ostensibly more simple minimalist interface. Joey deVilla offers a gonzo follow-up take on this controversy here.

Their poster child example is a method, "last" that returns the final element of a collection. In Ruby, (and Smalltalk, and …) a method to do just this is provided. Java interface designers are cast as the Spartans in this tale, providing only a basic getter. To retrieve the last element of a collection, something akin to a.get(a.size()-1) must be executed.

Is the Marie Antoinette vs. Wal-Mart? Loincloths? Baroque and rococo vs. Frank Lloyd Wright and the modernists?

At first blush, this would seem any easy call. My Smalltalk roots (among other things) are likely showing when I say I see no harm in a larger, more expressive vocabulary.

And there I might leave it, if this did not raise an even more interesting issue, which is: What if they are both right? How is that for equivocation?

Now the reader need not fear, for I still intend to cast my lot on the side of the humane, and not the stingy, though when the argument is cast in such terms, it is hard not to feel a tad manipulated, and after all, smaller can be simpler, I suppose... To be anti-humane is to be in favor of what? Euthanizing kittens?

Why can't we provide capable expressive, human-friendly abstraction that are themselves built around minimal cores?

The motivation for this is the need for what I call a Core or, better yet, a Nexus, that is a single, central, and yes, minimal subset of the public repertoire of an object through which all definitive, authoritative message traffic, both external and internal must pass.

In Smalltalk, programmers were traditionally rather casual about which methods were private, or fundamental, and which were written to ride atop this rock-bottom level vocabulary. Protocol organization helped to convey this to some degree, but such conventions as there were were frequently honored primarily in the breach.

Don’t get me wrong. I’m not arguing that these conventions be formalized and enforced (at least not yet; not here), rather, I’m arguing that this kind of "once and only once" is a guarantee that programmers want to ensure.

Why? So we can wrap the one place that gets and sets things, for instance. I want to know, for example, that any getter on a collection bottoms out at a single, definitive call to something like get().

So, indulge me for a minute. One way to do this might be…

Problem: you want to ensure that all references to an objects internal resources are made through a fixed, restricted set of methods.

Solution: refactor all the methods in this core, this nexus, into a separate component. Construct an entourage of wrappers (of various sorts) that employ the broader, more extensive vocabulary, and forward those in the minimal subset to this core; this nexus.

The use of a separate component guarantees that all the humane embellishments provided to the outside world must go through the minimal argot supplied by the core. This design also permits pluggable alternative implementations, such as, for instance, a sparse array implementation, to be plugged in in place of the standard cores.

Such as design is layered in the strict, traditional sense that many so-called layered designs are not. Like an onion.

Alternative designs involving inheritance using a private core with protected accessors are possible where efficiency concerns are at a premium, and runtime plug-in substitution seems unnecessary. Schemes employing interface inheritance are possible to envision too.

This was the defacto solution to this problem seen in a number of vintage Smalltalk classes. Indeed, such internal layering has been suggested as a “smell” that indicates that a new component need be culled from a class via refactoring.

So you can have a simple guts, and flashy, interchangeable skins. You can almost have your cake and eat it too. Marie Antoinette would be pleased. The filigree, the utility methods, are in the Decorators, while the core, the essence, is in the decorated cores.

That there be a nexus can be thought of as a design principle, its embodiment in recurring designs makes it a candidate for patternhood. Let’s see, we need two miracles for beatification, and two more for canonization

There is more that a hint of Handle / Body here, among other things. A scoop of Class Adapter? A full dress treatment of this seat-of-the-pants, inchoate proto-pattern notion might address these issues.

The piper is paid, as with so many patterns, at Creation Time, Provisioning Time, when the structural edifice that drives the computation is constructed, when the web of objects is woven. But that is a tale for another post...


Here’s why I’m partial to the somewhat obscure word “nexus”, over “core”, for this intent. While the more familiar “core” conveys the centrality, the primacy in this intent, it doesn’t capture the dynamic, causal interconnectedness of this intent as precisely as does “nexus”. I’ve been looking and listening for a long time for a term that better gets across the idea that a method or object be at a definitive, authoritative chokepoint or bottleneck, at a pass at which functionality could be “headed-off”, and this might be it. And no, I haven’t read very much by Henry Miller. From M-W:

nexus
Etymology: Latin, from nectere to bind

  1. CONNECTION, LINK; also, a causal link
  2. a connected group or series
  3. CENTER, FOCUS

All politics is local.
--Thomas P. "Tip" O'Neill

All software engineering is politics...
--Thomas Jay Peckish II

John Vlissides

|

John succumbed to brain cancer on Thanksgiving Day, 24 November 2005. He was only forty-four. I will miss him a lot. Many of us will. We are holding something of a dry, virtual Irish Wake for John on Ward’s Wiki. I've posted some of this material over there, too. As of 12/9/05, that WikiWake page had been seen by in excess of 16,000 visitors.


The Gang-of-Four celebrated the tenth anniversary of the publication of 'Design Patterns' last year at OOPSLA 2004. Three of them, John (sporting the propeller), Erich (wielding the knife) and Ralph are shown here preparing to eat their words. John was the OOPSLA 2004 Conference Chair, and had made the trip to Vancouver at the price, we later learned, of having had to forego chemotherapy for a week. John is shown still in costume for his role as "Jimmy the Freshman" in "Dating Design Patterns", a skit that I had warned him might seriously undermine the dignity of the entire conference. John replied "What dignity?". For good or ill, this lesson has stuck with me. John had self-effacing sense of humor to go with his genuinely contagious intellect, a rare combination indeed...



One of my favorite memories of John is, of course, of the time we put him on trial for crimes against computer science. I’d wondered whether anyone would go along with this pretext, but John thought it was a wonderful idea for an OOPSLA panel. A clip of John’s plea in this case can be found here.

Another is from Vancouver Aquarium Event at OOPSLA 2004 when John, the Conference Chair, took time out from servicing the usual throng of dignitaries waiting to kiss his ring to chat with a couple of our new students. One of them, Spiros Xanthos, is from Greece, and was amazed and delighted that John took several minutes to chat with him about his ancestors and background in fluent Greek. Spiros will never forget it. I won’t either.

Photos ©2004 by Munawar Hafiz, Spiros Xanthos, and Brian Foote

Microsoft Seeks to Acquire Weapons of Mass Computation

|

In a defiant keynote address delivered to a stunned audience at the Supercomputing 2005 Conference in Seattle, Microsoft Chairman William "Bill" Gates vowed today to acquire the technology to produce weapons of mass computation as quickly as possible. Microsoft’s program posses a provocative challenge to existing supercomputing powers such as IBM, Sun, and Cray.

This technology has heretofore been available only to an exclusive club comprising only the most technically advanced powers. That Microsoft, considered by some in the supercomputing elite as a rogue player, now has made the development of this technology a priority is raising considerable alarm.

Chairman Gates

Researchers at the University of Illinois at Urbana-Champaign’s Software Architecture group expressed skepticism that Microsoft could develop the powerful refactoring technology required to transform it’s raw business software into the highly enriched form necessary for high-performance computation. "It takes years to cultivate the powerful high-performance "codes" necessary to pose a serious threat. Without this [refactoring] technology, they are at least seven years away", said Thomas Jay Peckish II, of UIUC. "We’re they able to somehow acquire this technology from an outside source it, they could develop a weapon’s grade potential in as little as two years."

A key element of Microsoft’s alleged program is a black project know only as XBox, which threatens to put weapon’s grade supercomputing technology in the hands of any rogue adolescent anywhere on Earth. Microsoft claims this suitcase-sized device has no dual-use potential, and is intended only to pacify children.

Some scoff at this potential threat. This is a Business Intelligence failure of monumental proportions, suggested one analyst.

Gates did acknowledge that Microsoft is working on advanced cluster technology, the same technology that has been denounced by some human rights watchdogs as dangerous in the hands anyone but the most highly trained software technology experts. Gates disclosed that Microsoft has been developing these weapons under its Windows Cluster 2003 Program. He defended Microsoft’s work in this area, pointing out that competitors have been developing and deploying such technology for years.

Microsoft has launched a charm offensive to counteract the negative publicity it has been receiving as a result of these developments. They’ve booked the Experience Music Project Facility for a concert for an exclusive group of supercomputing dignitaries this evening. The mysterious EMP facility, it might be pointed out, is rumored to have been surreptitiously funded by reclusive Microsoft billionaire Paul Allen.

The official libretto for Gates's address can be found here. Their official strategy can be found here.


Photo ©2005 by Kathleen Ricker

Photran in the News

|

Click here to see the full article.

Oh, and any similarities between the piece above and this earlier Thomas Jay Peckish II interview are almost completely coincidental.

Then there is this Photran sighting in Ward Cunningham and Bjorn Freeman-Benson's 'blog about efforts to broaden the reach of the Eclipse CDT. Our collective efforts drew this plaudit from Bjorn: "I dream of an idyllic future where all Eclipse projects are as open and transparent and cooperative as CDT/Photran/PTP in our quest to create great frameworks." Aw shucks...


See Photran in action at the Supercomputing 2005 Conference, at both the Fortran Company and Los Alamos National Labs booths.

The Co-optation of Collective Nouns

|

We were discussing how it sometimes seems that Computer Scientists have co-opted every reasonably abstract collective noun in (at least) the English language for uses as a technical term. The conversation turned to whether there were any left to exploit in the name of enlarging our arcane argots. Munawar Hafiz picks up the play-by-play here...

Thomas Jay Peckish II on Scholarly Discourse

|

Look, this is the twenty-first century. I think by now everyone knows exactly what it is that they are expected to do if they can't take a joke.
--Thomas Jay Peckish II

I Have Nothing to Declare But My Genius

|

I Have Nothing to Declare but My Genius

With mainstream language design mired in ennui and retreating into formalism, the field has been effectively ceded to a ragtag, de-facto coalition of old-school dynamic stalwarts, scripting language designers, and ad-hoc domain specific API architects. A generation of research in this area can be distilled down into three overarching ideas, the rest is filigree.

This talk will explore these ideas, examine how and why these currents are converging, and show why the large scale, dispersed, heterogeneous, polyglot world of 21st century computing demands nothing less than this degree of commitment to dynamism.


Brian Foote has been programming professionally since the dawn of the Carter Administration, mostly in the service of academic researchers of various stripes. His association with the academy has enabled him to dabble extensively in research. His interests include objects, programming, programming language design, reflection, metalevel architecture, patterns, and software devolution. His exposure to Smalltalk during his impressionable formative years indelibly shaped his attitudes towards software architecture and design. Brian is one of five people to have attended every OOPSLA conference to-date. He is the author of a forthcoming self-help volume entitled “Late Binding as a Philosophy of Life”.

I get the same sense of security knowing that my program is statically type-safe as I do knowing that my seat cushion can be used as a flotation device.
--Donald Bradley Roberts, author of the award winning autobiography Outsourced to Indiana, during Q&A...

Devolution in the Air

|

Over the years, one of of the my favorite OOPSLA pastimes has been attempting to discern the Zeitgeist. What memes are moving, as the marketing 'droids might say. This time around, several distinctive themes emerged. I'll discuss the most vivid of them here. I'll talk about the others, Web Services, the Reflection and Metalevel Architecture Revival, and Refactoring Coming of Age, under separate cover.

The first, and most prominent / evident was Software Devolution.

By this I mean an overdue discussion of the death of quality, the embrace of failure, the acceptance of uncertainty, our exhausted capitulation in the face of complexity, the realization that the programme of the close-world formalist is mocked by reality.

Acknowledging devolution means acknowledging that not only are things worse than we've dared to admit, they are getting worse, and will continue to do so, at an ever accelerating pace. We are entering a worse-is-better world of sweatshops and generative robo-code, where the craftsmen must inevitably retreat to their redoubts in boutiques and curio shops.

Acknowledging devolution means abandoning our fetish for correctness, and learning what to do when (not if) something goes wrong.

Devolution was a theme that impinged from so many directions this year that it was impossible to ignore it. Software Devolution is something of an umbrella under which I am lumping a number of disparate trends. Perhaps the notion will seem more clear once I've cited some of the developments that made this theme seem palpable.

The most glaring evidence of this theme could be seen in Martin Rinard's Breakthrough Ideas presentation. Rather than cling to the notion that every error can even be caught, let alone avoided, Rinard deals statistically with consequences and ensuing carnage entailed in just "eating" them. The approach would seem to have more than a little in common with what the genetic programming people are doing. I need to look at his work more closely to see if this is so.

Embracing the reality of programmer fallibility and failure was a theme of Mary Beth Rosson's The End of Users keynote. She observed that something like ninety percent of all spreadsheets have errors, and that we are in something of a state of denial of the potential consequences of this reality.

Agile methodologists have been promoting the primacy of bottom-up, feedback intensive code and test based design as an alternative to the top-down foresight fetish crowd's traditional ideas. Martin Fowler's Finding Good Design keynote went beyond even this, and offered more than a nod in the direction of whether high-minded design ideals were honored primarily in the breach in practice, and questioned whether the very idea of design would retain its relevance.

For a moment, we all dared to ponder the question of whether craft in design is anything more than gilded filigree, soon to be as anachronistic as a hand-crafted circuit board.

My own Breakthrough Ideas triptych (previewed exclusively here a few weeks back) further reinforced the notion that the gap between what we practice and what we preach is large, and is growing larger. In Praise of Cut and Paste sought to "out" an ubiquitous practice among framework designers and, well, everyone else, that has been regarded as something of a dirty little secret by practitioners, while being scorned by high road methodologists and academics alike.

Big Bucket of Glue suggested, among other things, that integration isn't pretty, that it is often quick and dirty, that essential complexity is here to stay, and that some part of the system must bear the structural stigmata associated with wrangling the rest of the system into a coherent whole. It can be seen as a potential integration layer sequel to our hoary spasm of pomposity Big Ball of Mud.

The End-to-End Principle in Programming Language Design suggested that mainstream languages such as Java focus too closely on minutiae like protection and type checking at the micro level while neglecting any support for the overarching end to end of real, honest to God runtime facilities such as validators, to, well, who knows? Features designed badly at the language level must often be reinvented a level up in a dynamic or adaptive object model layer in order to properly accommodate the needs of any end to end domain specific languages that might emerge. One example of where this phenomenon can be seen the architectural eyesore that the services layer is becoming. It is bad, and getting worse by the minute.

Devolution can be seen in the enthusiastically received Scrapheap Challenge workshop, where participants dumpster dive scraps from the web as fast as they can to solve programming problems.

There was something decidedly devolutionary in Grady Booch’s overdue exhortation to cast models aside, and in his candid admission that no one reads code anyway.

The winners of our Sudoko exercise in the Extravagaria III: Hunting Creativity workshop used twenty-first century scrapheap techniques (they Googled the problem), mocking the attempts of the organizers to demonstrate genetic crossover using the other two groups who'd treated the task as relatively solitary chores.

The notion of "Software Devolution" is drawn from the colorful hatchet job James Noble did on my Biography for the Sashimi vs. the Purple Robots panel. If the shoe fits. It is a notion that fits wonderfully under the aegis of the Post-Modern School of Programming founded by Noble and fellow traveler Robert Biddle at the inaugural Onward! a few years back. We are All Devo indeed.

Among the mantras of this movement are paeans to the centrality of The Program as the essential focus of computer science. Code is seen not only as the source of choice for interesting problems to study, but as the remedy of choice for addressing them. We should address problems with code with code, like real computer scientists, and not with closed form analysis, like mere mathematicians.

Implicit in this is the hope that our discipline is finally becoming mature enough to confidently address indigenous subject matter with indigenous tools and ideas, rather than seeing ourselves as the outcast spawn of some tawdry, long forgotten one-night stand involving the mathematics and physics departments.

The primacy of code, and of runtime mechanisms as a condign recognition of the intricacy and fallibility of code was a central theme of my own closing address to the Dynamic Language Symposium. More of that elsewhere, soon, I hope.

Devolution can be seen in the decline in the impulse towards Linguistic Imperialism, the cooling of the language wars, the increasing irrelevance of Utopian Linguistic Monocultures, and the grudging acceptance that ours is a heterogeneous polyglot world, where applications are increasingly expected to be able to cooperate.

A devolutionary cast can be seen as well in the impulse to use generated code in place of code crafted by human beings. Is generation a symptom, a code smell, signaling the inadequacy of our languages and tools, or is it a harbinger of things to come, the wave of the future, a sign that the John Henrys with their TTL drivin’ keyboards will ultimately be vanquished by these generative steam drills.

Indeed, Richard Gabriel is suggesting that the ultrascale volumes of code that our futures will demand can only be supplied by an automated process that relies on increasing greater degrees of abstraction. This prophet of a grim Worse is Better world may find himself once again the reluctant head of yet another vanguard.

Devolution has